Data-driven customizable payroll element template

ABSTRACT

Various techniques can be used to customize payroll element templates. One method involves accessing a predefined payroll element template; receiving a template modification value, which is input by a payroll user in response to a question in a predefined payroll questionnaire; customizing the predefined payroll element template, based upon the template modification value, to create a customized payroll element template; and storing the customized payroll element template.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present patent application is a continuation of U.S. patentapplication Ser. No. 13/236,274, filed on Sep. 19, 2011, entitled“Data-Driven Customizable Payroll Element Template”; which claims thedomestic benefit under Title 35 of the United States Code §119(e) ofU.S. Provisional Patent Application Ser. No. 61/384,257, entitled“Global Element Template Generation,” filed Sep. 18, 2010. Both areincorporated by reference in their entirety and for all purposes as ifcompletely and fully set forth herein.

FIELD OF THE INVENTION

This invention relates to computing and, more particularly, toprocessing payroll information in a computing system.

DESCRIPTION OF RELATED ART

Historically, programs have been written to provide specificfunctionality to specific customers. These programs were hard-coded toinclude this functionality, as well as any baseline data required tosupport that functionality. Whenever a customer needed new functionalityor new baseline data, the program would need to be updated by aprogrammer. As companies have become more globalized, this historicalapproach has proven inflexible. For example, if each customer in a setof customers for a particular program has an office in a differentlocalization (e.g., is in a different country with its own taxstructures and other laws that affect how employee compensation iscalculated and/or is part of a different employer with its owncompensation structure), each localization may require differentfunctionality and baseline data. It is impractical and expensive toobtain customized payroll programs specifically tailored to eachlocalization.

SUMMARY

Various systems and methods for allowing users to customize payrollelement templates are disclosed. In one embodiment, a method involvesaccessing a predefined payroll element template; receiving a templatemodification value, which is input by a payroll user in response to aquestion in a predefined payroll questionnaire; customizing thepredefined payroll element template, based upon the templatemodification value, to create a customized payroll element template; andstoring the customized payroll element template.

A system can include one or more processors and memory coupled to theone or more processors. The memory stores program instructionsexecutable to perform a method like the one described above. Similarly,such program instructions can be stored upon a computer readable storagemedium.

The foregoing is a summary and thus contains, by necessity,simplifications, generalizations and omissions of detail; consequentlythose skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the present invention, asdefined solely by the claims, will become apparent in the non-limitingdetailed description set forth below.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention may be acquiredby referring to the following description and the accompanying drawings,in which like reference numbers indicate like features.

FIG. 1 illustrates a block diagram of a system for customizing payrollelement templates, according to one embodiment.

FIG. 2 is a flowchart of a method of customizing payroll elementtemplates, according to one embodiment.

FIG. 3A illustrates an example of a user interface screen for creating acustomized payroll element template, according to one embodiment.

FIG. 3B illustrates an example of a user interface screen for enteringbasic information to customize a payroll element template, according toone embodiment.

FIG. 3C illustrates an example of another user interface screen forentering basic information to customize a payroll element template,according to one embodiment.

FIG. 3D illustrates an example of yet another user interface screen forentering basic information to customize a payroll element template,according to one embodiment.

FIG. 3E illustrates an example of a user interface screen for enteringdetailed information to customize a payroll element template, accordingto one embodiment.

FIG. 3F illustrates an example of a user interface screen for enteringeligibility information to customize a payroll element template,according to one embodiment.

FIG. 3G illustrates an example of a user interface screen for reviewingcustomization information provided to customize a payroll elementtemplate, according to one embodiment.

FIG. 3H illustrates an example of a user interface screen for submittingcustomization information, according to one embodiment.

FIG. 3J illustrates an example of a user interface screen for viewing asummary of a customized payroll element template, according to oneembodiment.

FIG. 4 is block diagram of a payroll template logical data model,according to one embodiment.

FIG. 5 illustrates an example of a payroll template physical data model,according to one embodiment.

FIG. 6 is a block diagram of a computing device, illustrating how apayroll module that creates customized payroll element templates can beimplemented in software in at least one embodiment.

While the invention is susceptible to various modifications andalternative forms, specific embodiments of the invention are provided asexamples in the drawings and detailed description. It should beunderstood that the drawings and detailed description are not intendedto limit the invention to the particular form disclosed. Instead, theintention is to cover all modifications, equivalents and alternativesfalling within the spirit and scope of the invention as defined by theappended claims.

DETAILED DESCRIPTION

FIG. 1 illustrates a block diagram of a system for customizing payrollelement templates. As illustrated, the system includes a storage device100 that stores one or more predefined templates 110, one or morecustomized templates 112, and one or more objects 114. Storage device100 is coupled to a payroll module 150, which includes a templateprocessing module 152, a template customization wizard module 155, a setof one or more template customization values 157, and a user interface154. Payroll module 150 can be coupled to a display device 180, whichcan display a payroll user interface window 182.

Each predefined template 110 is a data structure that includes a basicpayroll element structure, including one or more records and, ifappropriate, relationships between those records (e.g., such ashierarchical parent-child relationships), as well as one or more rules.The rules control the configuration of customized templates derived fromthe basic payroll element structure, as well as the configuration ofpayroll objects instantiated from the predefined template and/orcustomized templates derived from the predefined template. A rule cancontrol which of the records present in the basic payroll elementstructure should be included in the customized template or object or thedefault value of such a record. Rules can also dynamically control theconfiguration process, as explained in more detail below. In someembodiments, rules can be used to provide MLS (MultiLanguage Support).Rules can also control whether resulting objects created from customizedtemplate can subsequently be modified or deleted (e.g., such rules canspecify whether a resulting object should be read-only).

A predefined template can be an indivisible entity or it can be dividedinto patterns. For example, in one embodiment, templates can be dividedinto appropriate functional areas. Each of the Functional Area can havean associated patterns, and a single pattern among them can be used whenprocessing the predefined template.

In one embodiment, the software vendor that provides customers withpayroll module 150 provides a variety of predefined templates thatcorrespond to basic payroll elements. Such payroll elements can includeformulas, earnings (e.g., bonuses, salary), deductions, and the like. Inone embodiment, payroll elements are divided into several generic typesof elements, each of which is represented by a predefined template. Forexample, these generic predefined templates could define flat amountelements, days times (×) rate elements, hours×rate elements, percentageof earnings elements, flat amount deduction elements, percentagededuction elements, professional body elements, and union deductionelements. Examples of these generic predefined templates are providedbelow. These predefined templates can then be customized to define morespecific types of payroll elements.

The customization process can be used to customize a generic payrollelement defined by a predefined template for use in a particularlocalization. A localization can be defined based upon an appropriatelegislative entity (e.g., a particular country, state, or otherlegislative entity that defines rules and/or regulations that affect howpayroll is processed in the localization) and/or an appropriatecorporate entity (e.g., a particular company may have different payrollrules than another company).

A customized template 112 is a data structure that is derived from apredefined template 110, based upon one or more template customizationvalues. A customized template can be indirectly derived from apredefined template by virtue of being derived from another customizedtemplate. In some embodiments, a user can view the interrelationshipsbetween predefined and customized templates in a user interface thatdisplays (e.g., in a tree structure) a customized template as a child ofthe appropriate template (predefined or customized) from which thecustomized template is derived.

An object 114 is an instance of a payroll element that has beeninstantiated based upon a template (either a predefined template 110 ora customized template 112). The records included in an object have beenassigned values. These values can either be default values (e.g., asdefined in the template, either predefined or customized, from which theobject was instantiated) or user-provided values. In some embodiments, auser can view the interrelationships between an object and thepredefined and/or customized template(s) from which that object isderived in a user interface that displays (e.g., in a tree structure)the object as a child of the appropriate template (predefined orcustomized) from which the object is derived.

Payroll module 150 is configured to perform payroll processing. Theelements of payroll module 150 shown in FIG. 1 are those used tocustomize predefined templates. As shown, payroll module 150 includes atemplate customization wizard module 155. Template customization wizardmodule 155 is configured to receive user input (e.g., from a user suchas a human user or other application) configuring a predefined template110 (e.g., via user interface 154) and to store (e.g., in local memoryor other storage usable by payroll module 150) this user input as one oftemplate modification values 157. Template processing module 152 thenuses template modification values 157, in conjunction with thepredefined template 110 being configured, to generate a customizedtemplate 112. Template processing module 152 then stores the customizedtemplate in storage 100 as one of customized templates 112.

As noted above, a predefined template includes one or more rules. Eachof these rules can have several corresponding options (e.g., true orfalse, value options, or the like). By selecting an option, a user cancustomize the predefined template to generate a customized template.Template customization wizard module 155 is configured to allow a userto select a predefined template to customize (e.g., via user interface154). Template customization wizard module 155 then accesses theselected predefined template to identify the rule(s) included in thatpredefined template. Based upon these rules, template customizationwizard module 155 dynamically creates a questionnaire to be presented tothe user (e.g., in payroll user interface window 182 by user interface154). Examples of the questions that can be included in such aquestionnaire are shown in FIGS. 3A-3J.

Each question within the questionnaire can correspond to one of therules in the predefined template. Additionally, each question canindicate two or more options that are selectable in response to thequestion. When a user selects an option, information indicating thatselection is provided to template customization wizard module 155 forstorage as a template modification value. These values control theconfiguration and functionality of an object instantiated from thecustomized template. It is noted that questions can be reused amongvarious templates. For example, many different templates can include thesame rule, and template customization wizard module 155 can beconfigured to display the same question each time that rule isencountered within a template.

As a user creates new customized templates, new questionnairescorresponding to the specific rules included in the new templates arealso created. For example, when template customization wizard module 155accesses a customized template, the questionnaire generated from therules in that customized template can vary from the questionnaire thatwould be generated for the predefined template from which the customizedtemplate is derived. Thus, different localizations can also customizequestionnaires.

The above technique for customizing predefined templates provides adata-driven approach, since customization can be performed by simplyproviding data (the responses to the questions in the questionnaire) tothe template customization wizard module. This means that a user cancreate customized templates without needing to update any of theunderlying code that is used to implement payroll module 150.

While the above example has focused on customizable templates for use increating customized payroll elements, it is noted that other embodimentsmay provide customizable templates for other types of elements. Forexample, similarly structured templates and modules for customizingthose templates could be used in systems that provide productconfiguration, human resources management, compensation management,support for multiple languages in other systems, and the like.

Similarly, while the above example has focused on a system in which auser customizes a predefined template via a graphical user interfacesuch as payroll user interface window 182, other embodiments may receivethis user input via other interfaces, such as a service (e.g., a webservice) that another application can call to access an applicationprogramming interface (API) provided by payroll module 150, a commandline interface (CLI) accessed by a human user or other program, or thelike.

Payroll user interface window 182 can be part of a graphical userinterface (GUI) or command line interface (CLI) provided by anapplication that includes payroll module 150. In some embodiments, theapplication can be a web-based application that users interact with viaa web browser, and thus payroll user interface window 182 can be a webbrowser or other client and payroll module 150 can be part of a webserver or configured to provide the information usable to generatepayroll user interface window 182 to such a web server for inclusion inweb content being sent to web clients.

Storage device 100 provides persistent data storage, such that datastored on such a storage device will remain stored even after thestorage device is powered off. Such a storage device can be, forexample, a hard disk, a compact disc (CD), a digital versatile disc(DVD), or other mass storage device, or a storage system (e.g., aredundant array of independent disks (RAID) system or an optical storagejukebox) that includes an array of such storage devices. Such a storagedevice can also be a virtual or logical storage device that isimplemented on such physical storage devices and/or storage systems. Forexample, such a storage device can be a logical volume that isimplemented on a RAID storage system. Additionally, such a storagedevice can include one or more storage devices. A storage device canalso include one or more types of storage media, including solid statemedia (e.g., Flash drives), optical media (e.g., CDs and DVDs), andmagnetic media (e.g., hard disks or magnetic tape). In some embodiments,such storage devices can be implemented using cloud storage, in whichthe storage device is a logical storage device to which physical storagedevice(s) are allocated on an as-needed and/or as-contracted basis.

Display device 180 is configured to display graphical and/or textualinformation to a user. A display device can include an output-onlydevice such as a cathode ray tube (CRT), liquid crystal display (LCD),or plasma monitor. Alternatively, a display device such as a touchscreen display can provide both input and output functionality, allowinga user to modify objects and/or object presentation directly via thedisplay device.

Display device 180, hierarchical data interface 150, and storage 100 canbe coupled directly (e.g., via a bus, local wireless link, or otherappropriate interconnect) or indirectly (e.g., via a network). In oneembodiment, these elements are each coupled by one or more networks,which may include a WAN (Wide Area Network), such as the Internet, oneor more LANs (Local Area Networks), and/or one or more SANs (StorageArea Networks).

FIG. 2 is a flowchart of a method of customizing payroll elementtemplates. This method can be performed by various components of apayroll module such as payroll module 150 of FIG. 1.

The method begins at 200, when user input selecting a template isreceived. This template is either a predefined template or a customizedtemplate derived from a predefined template. This template can becustomized using the remaining operations of FIG. 2. An object can beinstantiated from the template using similar operations that set valuesfor each of records included in the template.

At 210, a question in a questionnaire associated with the selectedtemplate is displayed or otherwise provided to the user. Thequestionnaire is a dynamically generated set of questions that is basedupon the rules included within the selected template. Each question isbased upon a respective rule in the template.

In response to the question, user input is received, as indicated at220. If the user input is a record exclusion value (e.g., a value thatwill determine whether a particular record in a template is to beexcluded from the customized template), the payroll module will storeinformation indicating that the appropriate record(s) should be excluded(or not excluded) from the customized template, as shown at 230. If therecord to be excluded is a parent to one or more other records in ahierarchical relationship, those child records should also be excluded.

If the user input is a default value, the payroll module will storeinformation indicating the default value of the appropriate record(s) inthe customized template, as indicated at 240. In some embodiments,certain default values may imply default values of one or more otherrecords, and thus those implied default values may also be identified inthe information stored at 240.

If the user input is a questionnaire exclusion value, the payroll modulewill store information indicating that another question in thequestionnaire should be excluded (or not excluded) from the currentcustomization session, as indicated at 250. For example, if certainquestions only apply to certain scenarios, and the user input indicatesthat those scenarios are not applicable, the corresponding questions forthose scenarios can be excluded from the current questionnaire.

If there are more questions remaining in the questionnaire (as modified,if needed, by operation 250), the next question can be displayed at 210.Once all questions have been answered, the payroll module creates acustomized template based upon the selected template and the informationsaved at 230 and 240, as indicated at 270.

Certain questions may not be displayed to the user. Instead, the answersto these questions may be received during other operations in thecustomization process. For example, the answer to a question about thetype of currency may be obtained based upon user selection of alegislative data group. In that case, the type of currency would be thetype appropriate for the legislative data group. Thus, some questions(and their corresponding rules) can be considered to be hidden, sincethese questions are not explicitly presented as part of thequestionnaire, even though the resulting template modification valuesobtained in response to these hidden questions can be used to customizethe template.

The following rules provide an example of the rules that can be includedin various predefined payroll element templates: Reporting Name, OutputCurrency (can be a hidden question whose value is based upon theselected legislative data group), specify currency (can be a hiddenquestion whose value is based upon the selected legislative data group),chosen classification, chosen secondary classification, and effectivedate (can be a hidden question whose value is based on the date of thesession to customize the predefined template).

Certain rules can be used to ascertain the duration of an employee'seligibility for an element. For example, a rule can correspond to thequestion “All eligible employees automatically receive this element?”and the possible response values can be selected from yes or no. Similarduration questions can include “When does employee eligibility begin?”(default value=hire date); “When does employee eligibility terminate?”(default=final close date); and the like.

Certain rules can be used to configure a calculation. For example,questions corresponding to these rules can ask “How do you want derivethe calculation?” (value=Entered Value/Pay Source/Balance; defaultvalue=Entered Value); “Time Definition associated with the derivation?”(value=Annual/Monthly/Weekly/Daily/Hourly/Periodic; defaultvalue=Annual); “Is the value subject to full time calculation?”(value=Yes/No/Yes—Excluding Hourly Rates; default value=Yes—ExcludingHourly Rates); “Select the Pay Source” (value=Input Value/ElementName/Spinal Point/Grade Rate/Deduction Information Repository;excluded=Calculation Source (NOT Pay Source)); “Which Input Value?”;“Calculation Type (Percentage or Factor)?” (value=percentage/factor;default=percentage;); “Calculation Value?”; “Which Spinal Point?”,“Which Grade Rate?”, Deduction Information Repository?”, “WhichBalance?”, and the like.

Certain rules will be excluded by the answers given to questionscorresponding to other rules. For example, certain rules may only applyin certain situations. If an answer to a prior question excludes thosesituations, there is no need to display the rules that apply to thosesituations to the user.

Some rules determine how other rules will be processed. For example,questions such as “At which level should this be attached?”(value=Payroll Relationship Level/Contract Level/Assignment Level),“Recurring, or requires explicit entry each payroll period?”(value=Automatically recur/Entered each payroll period; defaultvalue=Entered each payroll period); “Process only once in eachpayroll?”; “Is more than one entry of this earning allowed for anemployee in a pay period?”; “Separate or joint processing?”; “Whichdeductions should be processed?”; “When should this deduction start?”;“How to derive the deduction when an earnings threshold has beenreached?”; “Subject to Employer Liabilities?”; and the like. Additionalprocessing rules can correspond to questions such as “Overrides allowedfor this element?”; “Subject to Proration?”; “Subject to Retrospectivechanges?”; “Used to calculate the gross amount from a specified netamount?”; “Processing Stop when the Total is reached?”; “Reduce regularearnings?”; and the like.

FIG. 3A illustrates an example of a user interface screen for creating acustomized payroll element template. As shown, the selection of theappropriate template will be based on the user's choice of a LegislativeData Group (LDG) and a Classification from respective dropdown menus. Invarious embodiments, information usable to select a predefined templatecan include: Name (of the user's LDG); Reporting Name; TemplateDescription; Input Currency (which may default to the local currencydetected based upon the LDG); Primary Classification; SecondaryClassification; Effective Start Date (default to session date); ElementTemplate Type (e.g. Basic, Court Orders, Professional Body, etc);Calculation Rule; and the like. In one embodiment, earningsclassifications can include Information, Earnings, SupplementalEarnings, Taxable Benefits, Direct Payment, Employer Charges, and thelike. Deductions classifications can include Pre-Statutory Deductions,Tax Deductions, Social Insurance Deductions, Involuntary Deductions,Voluntary Deductions, and the like.

FIG. 3B illustrates an example of a user interface screen for enteringbasic information to customize a payroll element template. As shown, auser can enter text for certain questions, such as “Name” and “ReportingName.” The user can select options from a pull down menu in response toother questions, such as “Country.” Other questions can be answered byselecting a radio button, such as those in the “Termination andRecurring” section of this page.

FIG. 3C illustrates an example of another user interface screen forentering basic information to customize a payroll element template. Thisscreen indicates how certain questions can be answered by selectingcheckboxes. The values obtained in response to these questions can beused to include checked records and exclude unchecked records from theresulting customized template.

FIG. 3D illustrates an example of yet another user interface screen forentering basic information to customize a payroll element template. FIG.3E illustrates an example of a user interface screen for enteringdetailed information to customize a payroll element template. FIG. 3Fillustrates an example of a user interface screen for enteringeligibility information to customize a payroll element template and/oran object instantiated from a template. FIG. 3G illustrates an exampleof a user interface screen for reviewing customization information. FIG.3H illustrates an example of a user interface screen for submittingcustomization information. FIG. 3J illustrates an example of a userinterface screen for viewing a summary of a customized payroll elementtemplate.

The user interface shown in FIGS. 3A-3J allows a user to select atemplate for customization and to customize that template via aparticular user interface window, where the content (e.g., thequestions) to be displayed in that user interface window is dynamicallygenerated by a template customization wizard module. It is noted thatvarious different types of predefined templates can be customized in thesame user interface window by the same template customization module.Thus, an earnings payroll element template can be customized via thesame user interface window as a deduction payroll element template.Similarly, an earnings payroll element object can be instantiated fromthe same user interface window as a deduction payroll element object.

FIG. 4 is block diagram of an example of a payroll template logical datamodel that can be used in some embodiments. FIG. 5 illustrates anexample of a payroll template physical data model that corresponds tothe logical data model of FIG. 4. The elements of FIGS. 4 and 5 aredescribed in more detail below.

The PAY_TMPLATES table:

COLUMN NAME DATATYPE MANDATORY DESCRIPTION TEMPLATE_ID NUMBER(15) YesTEMPLATE_NAME VARCHAR2(50 Yes CHAR) TEMPLATE_TYPE CHAR(1 CHAR) YesOBJECT_VERSION_NUMBER NUMBER(9) Yes VERSION_NUMBER NUMBER(5) NoBASE_NAME VARCHAR2(50 No CHAR) BASE_PROCESSING_PRIORITY NUMBER(10) NoMAX_BASE_NAME_LENGTH NUMBER(5) No LEGISLATIVE_DATA_GROUP_ID NUMBER(15)No LEGISLATION_CODE VARCHAR2(30 No CHAR) CREATED_BY NUMBER(15) Yes WHOCOLUMN CREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) YesWHO COLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGINNUMBER(15) No WHO COLUMN

The PAY_TMPLT_TABLE_INFO table stores the table information of theelement types and associated objects.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION TABLE_ID NUMBER(15) YesOBJECT_VERSION_NUMBER NUMBER(9) No TABLE_NAME VARCHAR2(30 Yes CHAR)TABLE_VO VARCHAR2(200 No CHAR)) TABLE_DESCRIPTION VARCHAR2(200 No CHAR)LEGISLATIVE_DATA_GROUP_ID NUMBER(15) No LEGISLATION_CODE VARCHAR2(30 NoCHAR) CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATE Yes WHOCOLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATEYes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The PAY_TMPLT_COL_INFO table stores the column name of the column andalso the attribute name. The table id in this table refers to the tableinformation table. This rename flag indicates whether the column shouldbe renamed when the template processing module processes the seeded datato generate a template structure. Generally columns like Element Name,Input Name will have the flag set to ‘Y’. The Surrogate Key Flagindicates whether the column is a surrogate Key in the table. ThePrimary Key Flag indicates whether the column is a primary key in thetable.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION COL_ID NUMBER(15) YesTABLE_ID NUMBER(15) No OBJECT_VERSION_NUMBER NUMBER(9) No COL_NAMEVARCHAR2(30 No CHAR) DATA_TYPE VARCHAR2(30 No CHAR) RENAME_FLAGVARCHAR2(1 No CHAR) ATTR_NAME VARCHAR2(30 No CHAR) SURROGATE_KEY_FLAGCHAR(1 CHAR) No PRIMARY_KEY_FLAG CHAR(1 CHAR) No CREATED_BY NUMBER(15)Yes WHO COLUMN CREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BYNUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMNLAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The PAY_TMPLT_ROW_INST table stores the object information. TheSEED_ROW_INST_ID column stores the row_inst_id of the object from whichit is created. If it is a seeded row then the value of theseed_row_inst_id is the same row_inst_id.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION ROW_INST_ID NUMBER(15) YesTABLE_ID NUMBER(15) No SEED_ROW_INST_ID NUMBER(15) YesOBJECT_VERSION_NUMBER NUMBER(9) No CREATED_BY NUMBER(15) Yes WHO COLUMNCREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHOCOLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15)No WHO COLUMN USE_EXISTING_REC CHAR(1 CHAR) No SURROGATE_KEY_VALUEVARCHAR2(200 No CHAR) TEMPLATE_ID NUMBER(15) No

The PAY_TMPLT_CLMN_INST table stores the actual values of the objectsthat are seeded. This table refers to the row instance table and thecolumn instance table. The column value is stored in col_value andcol_clob_value. USE_EXISTING_REC indicates if this column has to bepicked from the seeded data or the core tables. SURROGATE_KEY_VALUE hasethe value of the surrogate key that will be used by the engine to getthe column value (this is used when the use_existing_rec is not null).The RULE_ID column stores the rule_id from the pay_tmplt_rules table. Ifa user wants to default the value of the column, then this RULE_ID hasto be associated with a rule of type “D” in the pay_tmplt_rules table.

When the template processing module encounters the value “Y” in‘Use_existing_rec’ in pay_tmplt_clmn_inst table, the template processingmodule picks up the surrogate_key_value and checks thepay_tmplt_table_relate to find the parent table (likepay_element_classification) for the entity (like pay_element_types tablein the above example) in the pay_tmplt_clmn_inst table. Then thetemplate processing module picks up the value of the primary key id(that matches the surrogate_key_value in the pay_tmplt_clmn_inst table)from the parent table and populates it into the column col_value of thepay_tmplt_clmn_inst table.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION CLMN_INST_IDNUMBER(15) Yes ROW_INST_ID NUMBER(15) No COL_ID NUMBER(15) NoOBJECT_VERSION_NUMBER NUMBER(9) No COL_VALUE VARCHAR2 No (200 CHAR)COL_CLOB_VALUE CLOB No RULE_ID NUMBER(15)) No USE_EXISTING_REC CHAR(1 NoCHAR) SURROGATE_KEY_VALUE VARCHAR2 No (200 CHAR) CREATED_BY NUMBER(15)Yes WHO COLUMN CREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BYNUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMNLAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The PAY_TMPLT_TABLE_RELATE table stores the relationships betweentables. The template processing module uses this when exclusion rulesare applied to a template.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION TABLE_RELATE_IDNUMBER(30) Yes PARENT_TABLE_ID NUMBER(15) No PARENT_COL_ID NUMBER(15) NoCHILD_TABLE_ID NUMBER(15) No CHILD_COL_ID NUMBER(15) NoOBJECT_VERSION_NUMBER NUMBER(9) No CREATED_BY NUMBER(15) Yes WHO COLUMNCREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHOCOLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15)No WHO COLUMN

The following tables are examples of rule tables. The PAY_TMPLT_RULEStable stores the rules that are displayed to the user in the wizard.There are three types of rules: Basic rules (rule_type value “B”), whichare rules that appear in the basic information page in the templatewizard; exclusion rules (rule_type value “E”), which are rules thatappear in the detailed information page and are tied to templates; anddefault rules (rule_type value “D”), which are used to default a columnof one or more objects to a user-specified default value.Rule_option_type indicates whether the input type in the wizardquestionnaire should be a radio button (value “R”) or input text value(value “I”). Rule_option_value defines the value set by the radiobuttons.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION RULE_ID NUMBER(15) YesOBJECT_VERSION_NUMBER NUMBER(9) No RULE_OPTIONS_TYPE VARCHAR2(30 YesCHAR) RULE_OPTIONS_VALUE VARCHAR2(30 No CHAR) RULE_TYPE VARCHAR2(5 NoCHAR) LEGISLATIVE_DATA_GROUP_ID NUMBER(15) No LEGISLATION_CODEVARCHAR2(30 No CHAR) CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATEDATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMNLAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHOCOLUMN TEMPLATE_ID NUMBER(15) No

The PAY_TMPLT_PTRN_ENT_USGS table is a translatable table for the rulestable. It will include the default value and the exclusion value.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION RULE_ID NUMBER(15)Yes LANGUAGE VARCHAR2(4 Yes CHAR) OBJECT_VERSION_NUMBER NUMBER(9) NoRULE_TXT VARCHAR2 Yes (200 CHAR) DEFAULT_VALUE VARCHAR2 No (200 CHAR)EXCLUSION_VALUE VARCHAR2 No (200 CHAR) CREATED_BY NUMBER(15) Yes WHOCOLUMN CREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) YesWHO COLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGINNUMBER(15) No WHO COLUMN

The PAY_TMPLT_RULE_GROUPS table enables rules to be shown in groups inbasic and detailed information pages. This table stores informationgrouping rules. The TEMPLATE_ID will include the corresponding templateID for the group in which we want this rule group to appear. TheGROUP_LOCATION will have values of either “B” (basic) or “D” (detailed)to indicate which page of the wizard interface should include the rulesin this group. The GROUP_TEXT column will store the group name that isused as the title of the group on the indicated page.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION RULE_GROUP_IDNUMBER(15) Yes BASE_RULE_GROUP_NAME VARCHAR2 No (80)OBJECT_VERSION_NUMBER NUMBER(9) Yes CREATED_BY NUMBER(15) Yes WHO COLUMNCREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHOCOLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15)No WHO COLUMN TEMPLATE_ID NUMBER(15) No GROUP_LOCATION VARCHAR2 No (30)

The PAY_TMPLT_RULE_GROUPS_TL:

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION RULE_GROUP_IDNUMBER(15) Yes GROUP_TEXT VARCHAR2 Yes (200 CHAR) LANGUAGE VARCHAR2 Yes(4 CHAR) SOURCE_LANG VARCHAR2 Yes (4 CHAR) OBJECT_VERSION_NUMBERNUMBER(9) Yes CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATEYes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMNLAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHOCOLUMN

The PAY_TMPLT_RULE_GR_USGS table is used to store the mappings of thegroups to the rules. Based on the value seeded in the rule_value column(e.g., in response to user input received in response to aquestionnaire), the specific entity row will be excluded or included. Ifthe value seeded in the pay_tmplt_rules_TL table column EXCLUSION_VALUEmatches the value seeded in this colun (RULE_VALUE), the entity (row)will be excluded from the template.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION RULE_GROUP_USAGE_IDNUMBER(15) Yes RULE_GROUP_ID NUMBER(15) Yes RULE_ID NUMBER(15) YesOBJECT_VERSION_NUMBER NUMBER(9) Yes RULE_SEQUENCE NUMBER(15) NoCREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATE Yes WHO COLUMNLAST_UPDATED_BY NUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATE Yes WHOCOLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The PAY_TMPLT_ENT_RULE_USGS table provides a mapping between the rulesand the row instances tables. One rule can be linked to multiple rowinstances. The row instances will be excluded if the value provided bythe user (e.g., via a response to a question in a questionnaire) is thesame as the value in this table. There can be multiple combinations ofexclusions depending n the user-provided value for a rule.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION ENT_RULE_USG_IDNUMBER(30) Yes RULE_ID NUMBER(15) No ENTITY_ID NUMBER(15) No RULE_VALUEVARCHAR No (200) OBJECT_VERSION_NUMBER NUMBER(9) No ENTITY_TYPE VARCHAR2No (30 CHAR) CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATE YesWHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATEDATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The following tables are examples of tables that can be used to definetemplate functional areas and patterns. In this examples, the valueseeded in the rule_value column (e.g., in response to the userresponding to a question in a questionnaire) will be used to determinewhether a specific entity row is excluded or included. In particular, ifthe EXCLUSION_VALUE matches the values seeded in the RULE_VALUE column,the entity (row) will be excluded from the template.

The PAY_TMPLT_FUN_AREAS table defines functional areas.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION FUN_AREA_ID NUMBER(15) YesOBJECT_VERSION_NUMBER NUMBER(9) No TEMPLATE_ID NUMBER(15) YesFUN_AREA_NAME VARCHAR2(20 CHAR) Yes DEFAULT_PATTERN_ID NUMBER(15) NoLEGISLATIVE_DATA_GROUP_ID NUMBER(15) No LEGISLATION_CODE VARCHAR2(30CHAR) No CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATE Yes WHOCOLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATEYes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The PAY_TMPLT_DSGN_PTRN table can be used to define patterns.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION PATTERN_ID NUMBER(15) YesPATTERN_NAME VARCHAR2(20 CHAR) Yes OBJECT_VERSION_NUMBER NUMBER(9) NoLEGISLATIVE_DATA_GROUP_ID NUMBER(15) No LEGISLATION_CODE VARCHAR2(30CHAR) No CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATE Yes WHOCOLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATEYes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

The PAY_TMPLT_PTRN_SELECT table associates a particular pattern withdifferent functional areas that have been seeded in thepay_tmplt_fun_areas table.

COLUMN NAME DATATYPE MANDATORY DESCRIPTION PTRN_SELECT_ID NUMBER(15) YesPATTERN_ID NUMBER(15) No FUN_AREA_ID NUMBER(15) No OBJECT_VERSION_NUMBERNUMBER(15) No LEGISLATIVE_DATA_GROUP_ID NUMBER(15) No LEGISLATION_CODENUMBER(15) No CREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATEYes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHO COLUMNLAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHOCOLUMN

The PAY_TMPLT_PTRN_RULE_USGS table matches the pattern with thedifferent rules from the pay_tmplt_rules table.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION PTRN_RULE_USAGE_IDNUMBER(15) Yes PATTERN_ID NUMBER(15) No RULE_ID NUMBER(15) NoOBJECT_VERSION_NUMBER NUMBER(9) No CREATED_BY NUMBER(15) Yes WHO COLUMNCREATION_DATE DATE Yes WHO COLUMN LAST_UPDATED_BY NUMBER(15) Yes WHOCOLUMN LAST_UPDATE_DATE DATE Yes WHO COLUMN LAST_UPDATE_LOGIN NUMBER(15)No WHO COLUMN

The PAY_TMPLT_PTRN_ENT_USGS table maps the different row_inst_id frompay_tmplt_row_inst with the patterns seeded in the pay_tmplt_dsgn_ptrntables.

MAN- DE- DA- SCRIP- COLUMN NAME DATATYPE TORY TION PTRN_RULE_USAGE_IDNUMBER(15) Yes PATTERN_ID NUMBER(15) No ENTITY_ID NUMBER(15) NoENTITY_TYPE VARCHAR2 No (30 CHAR) OBJECT_VERSION_NUMBER NUMBER(9) NoCREATED_BY NUMBER(15) Yes WHO COLUMN CREATION_DATE DATE Yes WHO COLUMNLAST_UPDATED_BY NUMBER(15) Yes WHO COLUMN LAST_UPDATE_DATE DATE Yes WHOCOLUMN LAST_UPDATE_LOGIN NUMBER(15) No WHO COLUMN

FIG. 6 is a block diagram of a computing device 400 that illustrates howa payroll module 150 (e.g., such as payroll module 150 of FIG. 1) thatcreates customized payroll element templates can be implemented insoftware. Computing device 400 can be a personal computer, networkappliance, server, personal digital assistant, mobile phone, storagecontroller (e.g., an array controller, tape drive controller, or harddrive controller), laptop computer, or the like. In general, computingdevice 400 is configured to execute software or otherwise provideappropriate functionality to customize predefined payroll elementtemplates as described herein.

As illustrated, computing device 400 includes one or more processors 402(e.g., microprocessors, Programmable Logic Devices (PLDs), orApplication Specific Integrated Circuits (ASICs)) configured to executeprogram instructions stored in memory 404. Memory 4004 can includevarious types of Random Access Memory (RAM), Read Only Memory (ROM),Flash memory, Micro Electro-Mechanical Systems (MEMS) memory, magneticcore memory, and the like. Memory 404 can include both volatile andnon-volatile memory.

Computing device 400 also includes one or more interfaces 406 (e.g.,such as interfaces to a storage device, network, user output device suchas a display device, user input device such as a mouse, touch screen, orkeyboard, and the like). Processor 402, interface 406, and memory 404are coupled to send and receive data and control signals by a bus orother interconnect.

Interface 406 can include a network interface to various networks and/orinterfaces to various peripheral buses. For example, interface 406 caninclude a network interface via which user input requesting variousconfigurations of a predefined payroll element template or the displayof information about a predefined or customized payroll element templateis received. Interface 406 can also include an interface to one or morestorage devices (e.g., such as a storage device, like storage 100 ofFIG. 1, storing one or more predefined and/or customized templates).

In this example, program instructions and data executable to implementall or part of payroll module 150 are stored in memory 404. The programinstructions and data implementing payroll module 150 can be stored onvarious computer readable storage media such as memory 404. In someembodiments, such software is stored on a computer readable storagemedium such as a Compact Disc (CD), Digital Versatile Disc (DVD), harddisk, optical disk, tape device, floppy disk, and the like). In order tobe executed by processor 402, the instructions and data can be loadedinto memory 404 from the other computer readable storage medium. Theinstructions and/or data can also be transferred to computing device 400for storage in memory 404 via a network such as the Internet or upon acarrier medium.

Examples of Predefined Templates:

In one embodiment, the predefined templates (e.g., predefined templates110 of FIG. 1) can be structured as follows. This example illustratesthe record details that can be included in each of several differenttypes of predefined templates. In this example, <BASE NAME> refers tothe name given by the end user to the element type or object. This basename can also be used to create the balances, formulas, and the like. Insome cases this will be the name given to the element, and in some casesit will be pre-fixed to the record name (e.g., “My Salary” name will bepre-fixed to the formula “Flat Amount”; such that the record namebecomes “My Salary Flat Amount”).

In the following example templates, the rules included in each templatecan be used for two purposes: to exclude a record and to create adefault value. For example, the element “Flat Amount Special Feature”can include the rule {RULE: Total Reached VALUE: N}. This means if theuser chooses not to have the total amount feature (as indicated by theuser's answer to a corresponding question in a questionnaire) then thespecial feature element will not be created. As a result any child orreferenced records of the special feature element will be excluded aswell.

As another example, {RULE:Over Ride DEFAULT:N} on ADDITIONAL ENTRYALLOWED FLAG. This means the answer to the question will be used todefault the given attribute. Also the DEFAULT indicates what would bethe default answer for the given question. Please note that this defaultwill be hard coded within the given record. Hence even if a rule isexcluded by another rule then the default on the record still remains.

Example Flat Amount Element Predefined Template:

Element Types CLASSIFICATION NAME {Chosen classification} ADDITIONALENTRY ALLOWED FLAG {RULE:Over Ride DEFAULT:N} ADJUSTMENT ONLY FLAG NCLOSED FOR ENTRY FLAG N ELEMENT NAME <BASE NAME> INDIRECT ONLY FLAG NMULTIPLE ENTRIES ALLOWED FLAG {RULE:Multiple Entries DEFAULT:Y} STARTINGTIME DEF {RULE: Hire Process DEFAULT:On Hire Date} ENDING TIME DEF{RULE: Termination Process DEFAULT:On Final Close Date} PROCESS IN RUNFLAG Y RELATIVE PROCESSING PRIORITY 0 PROCESSING TYPE {RULE:Recurring OrNonRecurring VALUE:N} STANDARD LINK FLAG {RULE:Availability RuleDEFAULT:N} INPUT CURRENCY CODE {RULE:Specify Currency DEFAULT:<Currencycode for the given country>} OUTPUT CURRENCY CODE {RULE:Output CurrencyDEFAULT:<Currency of the given country>} ONCE EACH PERIOD FLAG{RULE:Once Per Period DEFAULT:N} USE AT REL LEVEL {RULE: Process RelLevel DEFAULT:N} USE AT TERM LEVEL {RULE: Process Term Level DEFAULT:N}USE AT ASG LEVEL {RULE: Process Asg Level DEFAULT:Y} PRORATION FORMULAPRORATION GROUP {RULE: Proration Group DEFAULT:PRORATION_GROUP} TIMEDEFINITION TYPE TIME DEFINITION RECALC EVENT GROUP {RULE:Retro GroupDEFAULT:RETRO_GROUP} REPORTING NAME ITERATIVE FLAG {RULE:IterativeInformation DEFAULT:N} ITERATIVE FORMULA DEFAULT_GROSSUP ITERATIVEPRIORITY 10 PROCESS MODE {RULE:Process Period DEFAULT:S} EXCLUSION RULECLASSIFICATION NAME {Chosen classification} ADDITIONAL ENTRY ALLOWED NFLAG ADJUSTMENT ONLY FLAG N CLOSED FOR ENTRY FLAG N ELEMENT NAME <BASENAME> Special Feature INDIRECT ONLY FLAG Y MULTIPLE ENTRIES ALLOWED YFLAG STARTING TIME DEF {RULE: Hire Process DEFAULT:On Hire Date} ENDINGTIME DEF {RULE: Termination Process DEFAULT:On Final Close Date} PROCESSIN RUN FLAG Y RELATIVE PROCESSING 50 PRIORITY PROCESSING TYPE N STANDARDLINK FLAG N INPUT CURRENCY CODE {RULE:Specify Currency DEFAULT:<Currencycode for the given country>} OUTPUT CURRENCY CODE {RULE:Output CurrencyDEFAULT:<Currency of the given country>} ONCE EACH PERIOD FLAG N USE ATREL LEVEL {RULE: Process Rel Level DEFAULT:N} USE AT TERM LEVEL {RULE:Process Term Level DEFAULT:N} USE AT ASG LEVEL {RULE: Process Asg LevelDEFAULT:Y} PRORATION FORMULA PRORATION GROUP TIME DEFINITION TYPE TIMEDEFINITION RECALC EVENT GROUP REPORTING NAME SF ITERATIVE FLAG ITERATIVEFORMULA ITERATIVE PRIORITY PROCESS MODE N EXCLUSION RULE {RULE: TotalReached VALUE: N}

Element Type Usages ELEMENT <BASE NAME> <BASE NAME> <BASE NAME> TYPEINCLUSION N N N FLAG RUN TYPE Separate Payment Standard Process SeparateNAME EXCLUSION {RULE:Process {RULE:Process {RULE:Process RULE PeriodPeriod Period VALUE: S} VALUE: N} VALUE: P}

Input Values ELEMENT <BASE <BASE <BASE <BASE <BASE TYPE NAME> NAME>NAME> NAME> NAME> EXCLUSION {RULE: {RULE: RULE Process Process PeriodPeriod VALUE: VALUE: NOT S} NOT N} DISPLAY 1 2 3 21 22 SEQUENCE GENERATEY Y N N N DB ITEMS FLAG HOT N N N N N DEFAULT FLAG MANDATORY N N N Y YFLAG NAME Pay Value Amount Jurisdiction Process Separate SeperatePayment UOM M M C C C LOOKUP YES_NO YES_NO TYPE DEFAULT N N VALUE InputValues ELEMENT <BASE <BASE <BASE <BASE NAME> TYPE NAME> NAME> NAME>EXCLUSION {RULE: RULE Total Reached VALUE: N} DISPLAY 20 23 24 9SEQUENCE GENERATE N N N Y DB ITEMS FLAG HOT N N N N DEFAULT FLAGMANDATORY Y Y Y N FLAG NAME Maximum Deduction Reduce Low Gross AmountProcessing Regular UOM M C C M LOOKUP DEDUCTION_PROCESSING YES_NO TYPEDEFAULT {RULE: {RULE: {RULE: Iterative VALUE Deduction ReduceInformation Types Regular DEFAULT: N} DEFAULT: A} DEFAULT: N} InputValues ELEMENT <BASE <BASE <BASE <BASE <BASE TYPE NAME> NAME> NAME>NAME> NAME> EXCLUSION RULE DISPLAY 10 11 12 13 14 SEQUENCE GENERATE Y YY Y Y DB ITEMS FLAG HOT N N N N N DEFAULT FLAG MANDATORY N N Y N Y FLAGNAME High Gross Reminder To Within Additional Method Amount UOM M M M MM LOOKUP ITERATIVE_METHOD TYPE DEFAULT {RULE: {RULE: {RULE:Interpolation Interpolation VALUE Iterative Iterative IterativeInformation Information Information DEFAULT: DEFAULT: DEFAULT: N} N} N}Input Values ELEMENT TYPE <BASE NAME> Special <BASE NAME> SpecialFeature Feature EXCLUSION RULE {RULE: Total Reached {RULE: Total ReachedVALUE: N} VALUE: N} DISPLAY 1 3 SEQUENCE GENERATE DB Y N ITEMS FLAG HOTDEFAULT N N FLAG MANDATORY FLAG N N NAME Pay Value Clear Accrued UOM M MLOOKUP TYPE DEFAULT VALUE

Balance Types ASSIGNMENT N N N REMUNERATION FLAG BALANCE NAME <BASENAME> <BASE NAME> <BASE NAME> Accrued Negative Earning BALANCE UOM M M MCURRENCY {RULE: {RULE: {RULE: CODE Output Currency Output CurrencyOutput Currency DEFAULT:< DEFAULT:< DEFAULT:< Currency of the Currencyof the given Currency of the given given country>} country>} country>}COMMENTS Primary balance Accrued balance for Negative Earning for FlatAmount Flat Amount. balance for Flat Earnings. Amount. REPORTING AccruedAccrued NAME CATEGORY Earnings Wages Wages NAME BASE BALANCE <BASE NAME><BASE NAME> TYPE INPUT VALUE Pay Value EXCLUSION {RULE: Total {RULE:Total RULE Reached VALUE: N} Reached VALUE: N}

Balance Feeds ELEMENT <BASE NAME> <BASE NAME> <BASE NAME> NAME SpecialFeature INPUT Pay Value Clear Accrued Pay Value VALUE BALANCE <BASENAME> <BASE NAME> <BASE NAME> NAME Accrued Accrued SCALE 1 1 1 EXCLUSION{RULE: Total {RULE: Total RULE Reached VALUE: Reached VALUE: N} N}

Defined Balances BALANCE TYPE DIMENSION EXCLUSION RULE Flat AmountPayroll Relationship Calendar Year To Date Flat Amount PayrollRelationship Calendar Quater To Date Flat Amount Payroll RelationshipCalendar Month To Date Flat Amount Payroll Relationship Inception To{RULE: Total Reached Date VALUE: N} Flat Amount Payroll Relationship PayRun Flat Amount Payroll Term Calendar Year To Date {RULE:ProcessingLevel VALUE: R} Flat Amount Payroll Term Inception To Date{RULE:Processing Level VALUE: R} {RULE: Total Reached VALUE: N} FlatAmount Payroll Term Pay Run {RULE:Processing Level VALUE: R} Flat AmountPayroll Assignment Calendar Year To {RULE:Processing Level Date VALUE:NOT A} Flat Amount Payroll Assignment Inception To Date {RULE:ProcessingLevel VALUE: NOT A} {RULE: Total Reached VALUE: N} Flat Amount PayrollAssignment Pay Run {RULE:Processing Level VALUE: NOT A} Flat AmountPayment Flat Amount Element Entry Inception To Date {RULE: Total ReachedVALUE: N}

Fast Formulas FORMULA NAME _FLAT_AMOUNT_EARN DESCRIPTION Formula forFlat Amount Template FORMULA/************************************************** TEXT*************************** FORMULA NAME: _FLAT_AMOUNT_EARN FORMULATYPE: Payroll DESCRIPTION: Formula for Flat Amount for Earning Templatefor International Payroll. Returns pay value (Amount); Formula Results : flat_amount Direct Result for Earnings Amount.  clear_accrued IndirectResult for Accrued Amount.  STOP_ENTRY To indicate whether the entryneeds to be ended.  mesg Warning message will be issued for thisassignment. *******************************************************************************/ /* Database Item Defaults */ DEFAULT FORflat_amount is 0 DEFAULT FOR additional_amount is 0 DEFAULT FORmaximum_amount is 0 DEFAULT FOR mesg is ‘NOT ENTERED’ DEFAULT FOR <BASENAME>_ACCRUED_CORE_ASG_ITD IS 0 DEFAULT FOR <BASENAME>_ACCRUED_CORE_ASG_ITD IS 0 DEFAULT FOR <BASENAME>_ACCRUED_CORE_TRM_ITD IS 0 DEFAULT FOR <BASENAME>_ACCRUED_CORE_PRS_ITD IS 0 DEFAULT FOR <BASE NAME>_CORE_EE_ITD IS 0DEFAULT FOR <BASE NAME>_EMPLOYEMENT_LEVEL IS ‘A’ default forprorate_start is ‘01-JAN- 1900’ (date) default for prorate_end is‘01-JAN- 1900’ (date) DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS‘0001/01/01 00:00:00’ (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS‘0001/01/02 00:00:00’(Date) /* Inputs */ INPUTS ARE Amount (number),additional_amount (number), maximum_amount (number), prorate_start(date), prorate_end (date) /* Declarations */ get_accrued_value = 0accrued_value = 0 clear_accrued = 0 /* Amount to be derived from thegiven Pay Source by using the Get_Amount function. */ flat_amount =Get_Amount( ) + additional_amount l_start_date =GREATEST(PAY_PROC_PERIOD_START_DATE, <BASE NAME>_START_DATE,prorate_start) l_end_date = LEAST(PAY_PROC_PERIOD_END_DATE, <BASENAME>_END_DATE, prorate_end) l_duration = (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE , PAY_PROC_PERIOD_START_DATE)+1) /*Calculations */ /* Proration Calculation (if enabled) */ IF(prorate_start WAS NOT DEFAULTED) THEN  (   flat_amount = flat_amount *(DAYS_BETWEEN( l_end_date , l_start_date)+1)/ l_duration  ) /* TotalReached Check (if enabled) */ IF (maximum_amount WAS NOT DEFAULTED) THEN (   /* Use the appropriate balance based on the employment level forthe given element.*/   IF (<BASE NAME>_EMPLOYEMENT_LEVEL = ‘A’) THEN   (     get_accrued_value = <BASE NAME>_ACCRUED_CORE_ASG_ITD    )  ELSE IF (<BASE NAME>_EMPLOYEMENT_LEVEL = ‘T’) THEN    (    get_accrued_value = <BASE NAME>_ACCRUED_CORE_TRM_ITD    )   ELSE   (     get_accrued_value = <BASE NAME>_ACCRUED_CORE_PSR_ITD    )  base_entry_itd = <BASE NAME>_EE_ITD   IF base_entry_itd = 0 ANDget_accrued_value > 0 THEN   (     clear_accrued = get_accrued_value*−1    accrued_value = 0   )   ELSE   (     accrued_value =get_accrued_value   )   IF (maximum_amount <= flat_amount +accrued_value) then   (      flat_amount = maximum_amount −accrued_value     clear_accrued = (get_accrued_value + flat_amount) * −1    mesg = mesg||‘Earnings element entry has stopped’           ||‘ asthe Maximum Amount has been reached.’      STOP_ENTRY = ‘Y’    )  ) /*Returns */ RETURN flat_amount ,     clear_accrued ,     STOP_ENTRY ,    mesg /* End Formula Text */ EXCLUSION RULE

Formula Rules SHADOW <BASE <BASE <BASE <BASE ELEMENT NAME> NAME> NAME>NAME> TYPE FORMULA <BASE <BASE <BASE <BASE NAME>_(—) NAME>_(—) NAME>_(—)NAME>_(—) FLAT_(—) FLAT_(—) FLAT_(—) FLAT_(—) AMOUNT_(—) AMOUNT_(—)AMOUNT_(—) AMOUNT_(—) EARN EARN EARN EARN ELEMENT <BASE <BASE TYPE NAME>NAME> Special Feature RESULT flat_amount clear_(—-) STOP_(—-) mesg NAMEaccured ENTRY INPUT Pay Value Clear VALUE Accrued RESULT D I S M RULETYPE EXCLUSION RULE

Iterative Rules ELEMENT <BASE <BASE <BASE <BASE <BASE NAME> NAME> NAME>NAME> NAME> FORMULA DEFAULT_GROSSUP DEFAULT_GROSSUP DEFAULT_GROSSUPDEFAULT_GROSSUP DEFAULT_GROSSUP RETURN ADDITIONAL_AMOUNT HIGH_GROSSLOW_GROSS REMAINDER STOPPER NAME TYPE A A A A S INPUT Additional HighGross Low Gross Remainder VALUE Amount SEVERITY EXCLUSION RULE

Retro Component Usages CREATOR TYPE ET CREATOR Flat Amount RETROReplacement COMPONENT DEFAULT Y COMPONENT REPROCESS R TYPEExample Days×Rate Predefined Template:

Element Types CLASSIFICATION NAME {Chosen classification} ADDITIONALENTRY ALLOWED {RULE:Over Ride DEFAULT:N} FLAG ADJUSTMENT ONLY FLAG NCLOSED FOR ENTRY FLAG N ELEMENT NAME Days × Rate INDIRECT ONLY FLAG NMULTIPLE ENTRIES ALLOWED {RULE:Multiple Entries DEFAULT:Y} FLAG STARTINGTIME DEF {RULE: Hire Process DEFAULT:On Hire Date} ENDING TIME DEF{RULE: Termination Process DEFAULT:On Final Close Date} PROCESS IN RUNFLAG Y RELATIVE PROCESSING 0 PRIORITY PROCESSING TYPE {RULE:Recurring OrNonRecurring VALUE:N} STANDARD LINK FLAG {RULE:Availability RuleDEFAULT:N} INPUT CURRENCY CODE {RULE:Specify Currency DEFAULT:<Currencycode for the given country>} OUTPUT CURRENCY CODE {RULE:Output CurrencyDEFAULT:<Currency of the given country>} ONCE EACH PERIOD FLAG{RULE:Once Per Period DEFAULT:N} USE AT REL LEVEL {RULE: Process RelLevel DEFAULT:N} USE AT TERM LEVEL {RULE: Process Term Level DEFAULT:N}USE AT ASG LEVEL {RULE: Process Asg Level DEFAULT:Y} PRORATION FORMULA_Days_X_Rate_Proration PRORATION GROUP {RULE:Proration DEFAULT:N} TIMEDEFINITION TYPE ? TIME DEFINITION ? RECALC EVENT GROUP {RULE:RetroDEFAULT:N} REPORTING NAME ITERATIVE FLAG {RULE:Iterative InformationDEFAULT:N} ITERATIVE FORMULA DEFAULT_GROSSUP ITERATIVE PRIORITY 10PROCESS MODE {RULE:Process Period DEFAULT:S}

Element Type Usages ELEMENT Days × Rate Days × Rate Days × Rate Days ×Rate TYPE INCLUSION N N N N FLAG RUN TYPE Separate Process ProcessSeparate NAME Payment Separately Separately - Non Payment - Non PeriodicPeriodic EXCLUSION {RULE: {RULE: {RULE: {RULE: RULE Recurring OrRecurring Or Recurring Or Recurring Or NonRecurring NonRecurringNonRecurring NonRecurring VALUE:R} VALUE:R} VALUE:N} VALUE:N}

Fast Formulas FORMULA NAME _DAYS_X_RATE DESCRIPTION Formula for Days XRate Template FORMULA /*************************************************TEXT **************************** FORMULA NAME: DAYS_X_RATE FORMULATYPE: Payroll DESCRIPTION: Formula for Days X Rate element where Daysmust be input, Multiple defaults to 1 if not input, and Rate isdetermined by one of the following, in order of preference: 1) Entry of“Rate” input value 2) Salary Admin “Pay Basis” information -- INPUTS:Days Rate Multiple -- Change History --************************************************** ********************Formula Results :  earnings_amount Direct Result for Earnings Pay Value. mesg Message indicating that this earnings will be deleted for thisassignment. **********************************************************************/ /* ===== Alias Section Begin ====== */ ALIASHR_WORK_SCHEDULE AS Work_Schedule ALIAS HR_TIMECARD_REQUIRED ASTimecard_Required /* ===== Alias Section End ====== */ /* ===== DefaultsSection Begin ===== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is‘0001/01/01 00:00:00’ (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is‘0001/01/02 00:00:00’ (DATE) DEFAULT FOR ASG_SALARY is 0 DEFAULT FORASG_SALARY_BASIS is ‘NOT ENTERED’  /* IF Work_Schedule is not entered,this is assumed that employee works   8 hours a day and 5 days a week */DEFAULT FOR Work_Schedule is ‘1 Schedule: 8-8-8-8-8-0-0’ DEFAULT FORTimecard_Required is ‘N’ DEFAULT FOR Includes_Rest_Days is ‘N’ DEFAULTFOR Days is 0 DEFAULT FOR Rate is 0 DEFAULT FOR Multiple is 1 DEFAULTFOR ASG_FREQ_CODE is ‘W’ DEFAULT FOR ASG_HOURS is 40 /* ===== DefaultsSection End ===== */ /* ===== Inputs Section Begin ===== */ Inputs areDays, Rate, Multiple /* ===== Inputs Section End ===== */ /* =====Localvariables ===== */ local_dummy_class_name = ‘NONE’ local_daily_salary =0 local_gross_earnings = GROSS_EARNINGS_ASG_RUN local_ytd_gross_earnings= GROSS_EARNINGS_ASG_YTD mesg = ‘NOT ENTERED’ /* ===== CALCULATIONSECTION BEGIN ===== */  /* Use pay basis input value id and basis tofind rate. If   ASG_HOURLY_SALARY is the amount, then can call  Convert_Period_Type */  IF ASG_SALARY_BASIS = ‘DAILY’ THEN  (  local_daily_salary = ASG_SALARY  )  ELSE  (   local_daily_salary =Convert_Period_Type( Work_Schedule, ASG_HOURS, ASG_SALARY,ASG_SALARY_BASIS, ‘DAILY’, PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE, ASG_FREQ_CODE)    )   IF Rate WAS DEFAULTEDTHEN   (     calc_rate = local_daily_salary     /*IF ASG_SALARY_BASIS =‘DAILY’ THEN     (       calc_rate = ASG_SALARY      )      ELSE      (      calc_rate = Convert_Period_Type( Work_Schedule, ASG_HOURS,ASG_SALARY, ASG_SALARY_BASIS, ‘DAILY’, PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE, ASG_FREQ_CODE)       )*/   )   ELSE   (     /*Rate is entered */     calc_rate = Rate   ) /* ---- Now find Multiple----- */   calc_multiple = Multiple /* ---- Now find Days ----- */  tot_days_in_pay_period = Days_in_Pay_Period( )   IF ASG_SALARY WASDEFAULTED THEN   (      LOCAL_DAILY_SALARY = FIXED_EARNINGS_ASG_GRE_RUN/ tot_days_in_pay_period   )   IF Days WAS DEFAULTED THEN   (     IFTimecard_Required = ‘Y’ THEN     (       calc_days = 0      tot_work_days = 0       mesg =GET_MESG(‘PAY’,‘PAY_TIMECARD_NOT_FOUND’, ‘BASE_NAME’,‘<BASE_NAME>’)      RETURN mesg     )     ELSE     (       IF Includes_Rest_days = ‘Y’THEN       (         calc_days = tot_days_in_pay_period        tot_work_days = tot_days_in_pay_period       )       ELSE      (         calc_days = Work_Sch_Total_Hours_or_Days( Work_Schedule,PAY_PROC_PERIOD_START_DATE, PAY_PROC_PERIOD_END_DATE, ‘DAYS’)        tot_work_days = calc_days       )     )   )   ELSE   (     /*Use entered Days. */     calc_days = Days     IF Includes_Rest_days =‘Y’ THEN     (       tot_work_days = tot_days_in_pay_period      )     ELSE      (       tot_work_days = Work_Sch_Total_Hours_or_Days(Work_Schedule, PAY_PROC_PERIOD_START_DATE, PAY_PROC_PERIOD_END_DATE,‘DAYS’)     )   )   earnings_amount = (calc_days * calc_multiple *calc_rate) * (tot_days_in_pay_period / tot_work_days) /* =====CALCULATION SECTION END ===== */ /* ===== Returns Section Begin ===== */ earnings_days = calc_days  RETURN  earnings_amount        ,earnings_days /* ===== Returns Section End ===== */ /* End Formula Text*/ FORMULA NAME _DAYS_X_RATE_PRORATION DESCRIPTION Formula for Days XRate Proration Template FORMULA/************************************************* TEXT ***********Description : Formula to calculate pro rated amounts. DISCLAIMER : Thisformula is strictly for example or prototype  purposes only. You shouldupdate the formula to meet your particular  requirements. This formulamay contain certain hard  coded values to simplify the use of formulasfor proration. A typical example  of proration would be when a newemployee starts work in the middle of a  monthly payroll period and yourpayroll department makes a pro-rata payment  to reflect the proportionof monthly pay to which the employee is entitled.  The prototype formulasupplied is only designed to work for payroll  calculations involvingproration and should not be used for any other purpose.  Any use of theformula is subject to the terms of the Oracle license agreement  for theHRMS programs and documentation.************************************************** ***********/ defaultfor prorate_start is ‘01-JAN-1900’ (date) default for prorate_end is‘01-JAN-1900’ (date) default for amount is 0.0 inputs are prorate_start(date), prorate_end (date), annual_amount (number) /**   Prorate_startand prorate_end dates are passed from the payroll engine. These   datesbasically represent the dates on which the changes occur in the  deduction amount during the pay period. annual_amount is an inputvalue   created in the element to which this formula will be tied. Herethe   assumption is that the user enters the annual deduction amount inthe   input value. **/ l_amount = annual_amount message = ‘ProrationStart Date ’ || TO_CHAR(prorate_start, ‘DD-MON-YYYY’) IF (prorate_startwas defaulted) then ( /**   prorate_start date is defaulted when no proration occurs. Therefore we   should just return the annual deductionamount divided by 12. **/     l_amount = l_amount / 12     returnl_amount, message ) else (     l_days = days_between(prorate_end ,prorate_start) + 1 /**   l_days stores the number of days betweenprorate start and prorate   end dates **/     l_days_in_fiscal_year =365 /**     It is another assumption that a year contains 365 days.Please change     this assumption to take care of leap year. Thisformula will not work     properly in a leap year. **/     l_amount =(l_amount * l_days) / l_days_in_fiscal_year /**   In the abovecalculation, since l_amount contains the annual deduction amount,   itis divided by 365 days of the year to get the deduction amount per day.  This amount is then multiplied by the number of days in question toget   the proper deduction amount **/ return l_amount, message )

Formula Rules SHADOW ELEMENT TYPE Days X Rate Days X Rate FORMULA_DAYS_X_RATE _DAYS_X_RATE ELEMENT TYPE Days X Rate Days X Rate EXCLUSIONRULE RESULT NAME earnings_amount earnings_days INPUT VALUE Pay ValueDays RESULT RULE TYPE D D

Balance Types EXCLUSION RULE ASSIGNMENT N N REMUNERATION FLAG BALANCENAME Days X Rate Days X Rate Days BALANCE UOM M ND CURRENCY CODE{RULE:Output Currency {RULE:Output DEFAULT:<Currency of Currency thegiven country>} DEFAULT:<Currency of the given country>} COMMENTSPrimary balance for Days Days balance for X Rate Earnings. Days X RateEarnings. REPORTING NAME Days CATEGORY NAME Earnings Earnings Days BASEBALANCE Days X Rate TYPE INPUT VALUE Pay Value

Input Values ELEMENT Days Days X Days X Days X Days X TYPE X Rate RateRate Rate Rate EXCLUSION RULE EXCLUSION RULE VALUE DISPLAY 1 2 3 4 5SEQUENCE GENERATE DB Y Y Y Y Y ITEMS FLAG HOT DEFAULT N N N N N FLAGMANDATORY X N N N X FLAG NAME Pay Days Rate Multiple Jurisdiction ValueUOM M ND N N C LOOKUP TYPE DEFAULT VALUE DEFAULT VALUE COLUMN InputValues ELEMENT TYPE Days X Rate EXCLUSION RULE EXCLUSION RULE VALUEDISPLAY SEQUENCE 11 GENERATE DB ITEMS Y FLAG HOT DEFAULT FLAG NMANDATORY FLAG N NAME Includes Rest Days UOM C LOOKUP TYPE YES_NODEFAULT VALUE DEFAULT VALUE COLUMN

Balance Feeds INPUT VALUE Pay Value Days BALANCE TYPE Days X Rate Days XRate Days EXCLUSION RULE SCALE 1 1 BALANCE NAME

Defined Balances EXCLUSION BALANCE TYPE DIMENSION RULE Days X Rate_CORE_PRS_RUN Days X Rate _CORE_PRS_PY_PTD Days X Rate _CORE_PRS_MTDDays X Rate _CORE_PRS_QTD Days X Rate _CORE_PRS_YTD Days X Rate_CORE_PRS_TU_RUN Days X Rate _CORE_PRS_TU_PY_PTD Days X Rate_CORE_PRS_TU_YTD Days X Rate _CORE_ASG_RUN Days X Rate _CORE_ASG_PY_PTDDays X Rate _CORE_ASG_MTD Days X Rate _CORE_ASG_QTD Days X Rate_CORE_ASG_YTD Days X Rate _CORE_ASG_TU_RUN Days X Rate_CORE_ASG_TU_PY_PTD Days X Rate _CORE_ASG_TU_YTD Days X Rate Days_CORE_PRS_RUN Days X Rate Days _CORE_PRS_PY_PTD Days X Rate Days_CORE_PRS_MTD Days X Rate Days _CORE_PRS_QTD Days X Rate Days_CORE_PRS_YTD Days X Rate Days _CORE_PRS_TU_RUN Days X Rate Days_CORE_PRS_TU_PY_PTD Days X Rate Days _CORE_PRS_TU_YTD Days X Rate Days_CORE_ASG_RUN Days X Rate Days _CORE_ASG_PY_PTD Days X Rate Days_CORE_ASG_MTD Days X Rate Days _CORE_ASG_QTD Days X Rate Days_CORE_ASG_YTD Days X Rate Days _CORE_ASG_TU_RUN Days X Rate Days_CORE_ASG_TU_PY_PTD Days X Rate Days _CORE_ASG_TU_YTD

Retro Component Usages CREATOR TYPE ET CREATOR Days X Rate RETROReplacement COMPONENT DEFAULT Y COMPONENT REPROCESS R TYPEExample Hours×Rate Predefined Template:

Element Types CLASSIFICATION {Chosen classification} NAME ADDITIONAL{RULE:Over Ride DEFAULT:N} ENTRY ALLOWED FLAG ADJUSTMENT N ONLY FLAGCLOSED FOR N ENTRY FLAG ELEMENT NAME Hours X Rate INDIRECT ONLY N FLAGMULTIPLE {RULE:Multiple Entries DEFAULT:Y} ENTRIES ALLOWED FLAG STARTINGTIME {RULE: Hire Process DEFAULT:On Hire Date} DEF ENDING TIME {RULE:Termination Process DEFAULT:On DEF Final Close Date} PROCESS IN Y RUNFLAG RELATIVE 0 PROCESSING PRIORITY PROCESSING {RULE:Recurring OrNonRecurring VALUE:N} TYPE STANDARD LINK {RULE:Availability RuleDEFAULT:N} FLAG INPUT {RULE:Specify Currency DEFAULT:<Currency CURRENCYcode for the given country>} CODE OUTPUT {RULE:Output CurrencyDEFAULT:<Currency of CURRENCY the given country>} CODE ONCE EACH{RULE:Once Per Period DEFAULT:N} PERIOD FLAG USE AT REL {RULE: ProcessRel Level DEFAULT:N} LEVEL USE AT TERM {RULE: Process Term LevelDEFAULT:N} LEVEL USE AT ASG {RULE: Process Asg Level DEFAULT:Y} LEVELPRORATION _HOURS_X_RATE_PRORATION FORMULA PRORATION {RULE:ProrationDEFAULT:N} GROUP TIME ? DEFINITION TYPE TIME ? DEFINITION RECALC EVENT{RULE:Retro DEFAULT:N} GROUP REPORTING NAME ITERATIVE FLAG{RULE:Iterative Information DEFAULT:N} ITERATIVE DEFAULT_GROSSUP FORMULAITERATIVE 10 PRIORITY PROCESS MODE {RULE:Process Period DEFAULT:S}

Element Type Usages ELEMENT Hours Hours Hours Hours TYPE X Rate X Rate XRate X Rate INCLUSION N N N N FLAG RUN TYPE Separate Process SeparateProcess NAME Payment Separately Payment - Separately - Non Periodic NonPeriodic EXCLUSION {RULE: {RULE: {RULE: {RULE: RULE Recurring OrRecurring Or Recurring Or Recurring Or Non Non Non Non- RecurringRecurring Recurring Recurring VALUE:R} VALUE:R} VALUE:N} VALUE:N}

Fast Formulas FORMULA NAME _HOURS_X_RATE DESCRIPTION Formula for Hours XRate Template FORMULA /*************************************************TEXT **************************** FORMULA NAME: HOURS_X_RATE FORMULATYPE: Payroll DESCRIPTION: Creates formula for template element whereHours must be input, Multiple defaults to 1 if not input, and Rate isdetermined by one of the following, in order of preference: 1) Entry of“Rate” input value 2) Entry of “Rate Code” input value 3) Salary Admin“Pay Basis” information -- INPUTS: Hours Multiple Rate Rate_Code --Change History -- ********************************************************************** Formula Results :  earnings_amount  Direct Resultfor Earnings Pay Value.  mesg Message indicating that this earnings willbe deleted for for this assignment.  Followings are Indirect result forHours by Rate element:  ELEMENT_TYPE_ID_PASSED  RATE_PASSED  OURS_PASSED MULTIPLE_PASSED **********************************************************************/ /* ===== Alias Section Begin ====== */ ALIASHR_WORK_SCHEDULE AS Work_Schedule ALIAS HR_TIMECARD_REQUIRED ASTimecard_Required /* ===== Alias Section End ====== */ /* ===== DefaultsSection Begin ===== */ default for PAY_PROC_PERIOD_START_DATE is‘0001/01/01 00:00:00’ (DATE) default for PAY_PROC_PERIOD_END_DATE is‘0001/01/02 00:00:00’ (DATE) default for ASG_HOURLY_SALARY is 0 defaultfor ASG_SALARY_BASIS_CODE  is ‘NOT ENTERED’ default forUSER_ENTERED_TIME is ‘N’ default for Timecard_Required is ‘N’ defaultfor <BASE NAME>_ASG_GRE_RUN is 0 default for <BASE NAME>_ASG_GRE_YTD is0 default for <BASE NAME>_HOURS_ASG_GRE_RUN is 0 default forWork_Schedule is ‘NOT ENTERED’ default for ASG_HOURS is 0 default forHours is 0 default for Rate is 0 default for Multiple is 1 default forASG_FREQ_CODE is ‘NOT ENTERED’ default for NET_ASG_GRE_RUN is 0 defaultfor NON_PAYROLL_PAYMENTS_ASG_GRE_RUN is 0 /* ===== Defaults Section End===== */ /* ===== Inputs Section Begin ===== */ Inputs are Hours, Rate,Rate_Code (text), Rate_Table (text), Rate_Table_Column (text), Multiple,Multiple_Code (text), Multiple_Table (text), Multiple_Table_Column(text) /* ===== Inputs Section End ===== */ ELEMENT_TYPE_ID_PASSED =CURRENT_ELEMENT_TYPE_ID RATE_PASSED = 0 HOURS_PASSED = 0 MULTIPLE_PASSED= 0 /* ===== CALCULATION SECTION BEGIN ===== */   IF Rate WAS DEFAULTEDTHEN     IF ASG_HOURLY_SALARY WAS DEFAULTED THEN       (         mesg =GET_MESG(‘PAY’,‘PAY_74096_RATE_NOT_FOUND’,‘BASE_NAME’, ‘<BASE NAME>’)       RETURN mesg       )     ELSE        /* Use pay basis input valueid and basis to find rate. If         ASG_HOURLY_SALARY is the amount,then can call         Convert_Period_Type */      IFASG_SALARY_BASIS_CODE = ‘HOURLY’ THEN       calc_rate =ASG_HOURLY_SALARY      ELSE       calc_rate = Convert_Period_Type(Work_Schedule, ASG_HOURS, ASG_HOURLY_SALARY, ASG_SALARY_BASIS_CODE,‘HOURLY’, PAY_PROC_PERIOD_START_DATE, PAY_PROC_PERIOD_END_DATE,ASG_FREQ_CODE)     ELSE           /* Rate is entered */         calc_rate = Rate /* ---- Now find Multiple ----- */   IFMultiple WAS DEFAULTED THEN     IF Multiple_Code WAS DEFAULTED THEN          calc_Multiple = 1     ELSE           calc_Multiple = Multiple/* ---- Now find Hours ----- */   IF Hours WAS DEFAULTED THEN       IFASG_HOURS WAS DEFAULTED THEN         (          mesg =GET_MESG(‘PAY’,‘PAY_74097_HOURS_NOT_FOUND’,‘BASE_NAME’, ‘<BASE NAME>’)         RETURN mesg      )       ELSE          /* Use standard hoursentered on ASGignment */         ( calc_hours = ASG_HOURS          earnings_amount = (ASG_HOURS * calc_Multiple * calc_rate)        )   ELSE      /* Use entered hours. */      (    earnings_amount = (Hours * calc_Multiple * calc_rate)     calc_hours= Hours   ) /* ===== CALCULATION SECTION END ===== */ /* ===== ReturnsSection Begin ===== */ earnings_hours = calc_hours RATE_PASSED =calc_rate MULTIPLE_PASSED = Multiple HOURS_PASSED = earnings_hoursRETURN   earnings_amount , earnings_hours , mesg , mesg_err ,ELEMENT_TYPE_ID_PASSED , RATE_PASSED , HOURS_PASSED , MULTIPLE_PASSED /*===== Returns Section End ===== */ FORMULA NAME _HOURS_X_RATE_PRORATIONDESCRIPTION Formula for Hours X Rate Proration Template FORMULA/************************************************* TEXT ***********Description : Formula to calculate pro rated amounts. DISCLAIMER : Thisformula is strictly for example or prototype  purposes only. You shouldupdate the formula to meet your particular  requirements. This formulamay contain certain hard  coded values to simplify the use of formulasfor proration. A typical example  of proration would be when a newemployee starts work in the middle of a  monthly payroll period and yourpayroll department makes a pro-rata payment  to reflect the proportionof monthly pay to which the employee is entitled.  The prototype formulasupplied is only designed to work for payroll  calculations involvingproration and should not be used for any other purpose.  Any use of theformula is subject to the terms of the Oracle license agreement  for theHRMS programs and documentation.************************************************** ***********/ defaultfor prorate_start is ‘01-JAN-1900’ (date) default for prorate_end is‘01-JAN-1900’ (date) default for amount is 0.0 inputs are prorate_start(date), prorate_end (date), annual_amount (number) /**  Prorate_startand prorate_end dates are passed from the payroll engine. These  datesbasically represent the dates on which the changes occur in the deduction amount during the pay period. annual_amount is an input value created in the element to which this formula will be tied. Here the assumption is that the user enters the annual deduction amount in the input value. **/ l_amount = annual_amount message = ‘Proration StartDate ’ || TO_CHAR(prorate_start, ‘DD-MON-YYYY’) IF (prorate_start wasdefaulted) then ( /**  prorate_start date is defaulted when no proration occurs. Therefore we  should just return the annual deductionamount divided by 12. **/   l_amount = l_amount / 12   return l_amount,message ) else (    l_days = days_between(prorate_end , prorate_start) +1 /**  l_days stores the number of days between prorate start andprorate  end dates **/    l_days_in_fiscal_year = 365 /**   It isanother assumption that a year contains 365 days. Please change   thisassumption to take care of leap year. This formula will not work  properly in a leap year. **/    l_amount = (l_amount * l_days) /l_days_in_fiscal_year /**  In the above calculation, since l_amountcontains the annual deduction amount,  it is divided by 365 days of theyear to get the deduction amount per day.  This amount is thenmultiplied by the number of days in question to get  the properdeduction amount **/ return l_amount, message )

Formula Rules SHADOW ELEMENT Hours X Rate Hours X Rate TYPE FORMULA_HOURS_X_RATE _HOURS_X_RATE ELEMENT TYPE Hours X Rate Hours X RateEXCLUSION RULE RESULT NAME earnings_amount earnings_hours INPUT VALUEPay Value Hours RESULT RULE TYPE D D

Balance Types EXCLUSION RULE ASSIGNMENT N N REMUNERATION FLAG BALANCENAME Hours X Rate Hours X Rate Hours BALANCE UOM M H_DECIMAL2 CURRENCY{RULE: {RULE: CODE Output Currency Output Currency DEFAULT:< DEFAULT:<Currency of the given country>} Currency of the given country>} COMMENTSPrimary balance Hours balance for Hours X Rate for Hours X RateEarnings. Earnings. REPORTING Hours NAME CATEGORY Hourly EarningsEarnings Hours NAME BASE BALANCE Hours X Rate TYPE INPUT VALUE Pay Value

Input Values ELEMENT TYPE Hours X Hours X Hours X Hours X Hours X RateRate Rate Rate Rate EXCLUSION RULE EXCLUSION RULE VALUE DISPLAY 1 2 3 47 SEQUENCE GENERATE DB Y Y Y Y Y ITEMS FLAG HOT DEFAULT N N N N N FLAGMANDATORY X N N N X FLAG NAME Pay Value Hours Rate Multiple JurisdictionUOM M H_DECIMAL2 N N C LOOKUP TYPE DEFAULT VALUE DEFAULT VALUE COLUMN

Balance Feeds INPUT VALUE Pay Value Hours BALANCE TYPE Hours X RateHours X Rate Hours EXCLUSION RULE SCALE 1 1 BALANCE NAME

Defined Balances EXCLUSION BALANCE TYPE DIMENSION RULE Hours X Rate_CORE_PRS_RUN Hours X Rate _CORE_PRS_PY_PTD Hours X Rate _CORE_PRS_MTDHours X Rate _CORE_PRS_QTD Hours X Rate _CORE_PRS_YTD Hours X Rate_CORE_PRS_TU_RUN Hours X Rate _CORE_PRS_TU_PY_PTD Hours X Rate_CORE_PRS_TU_YTD Hours X Rate _CORE_ASG_RUN Hours X Rate_CORE_ASG_PY_PTD Hours X Rate _CORE_ASG_MTD Hours X Rate _CORE_ASG_QTDHours X Rate _CORE_ASG_YTD Hours X Rate _CORE_ASG_TU_RUN Hours X Rate_CORE_ASG_TU_PY_PTD Hours X Rate _CORE_ASG_TU_YTD Hours X Rate_CORE_PRS_RUN Hours Hours X Rate _CORE_PRS_PY_PTD Hours Hours X Rate_CORE_PRS_MTD Hours Hours X Rate _CORE_PRS_QTD Hours Hours X Rate_CORE_PRS_YTD Hours Hours X Rate _CORE_PRS_TU_RUN Hours Hours X Rate_CORE_PRS_TU_PY_PTD Hours Hours X Rate _CORE_PRS_TU_YTD Hours Hours XRate _CORE_ASG_RUN Hours Hours X Rate _CORE_ASG_PY_PTD Hours Hours XRate _CORE_ASG_MTD Hours Hours X Rate _CORE_ASG_QTD Hours Hours X Rate_CORE_ASG_YTD Hours Hours X Rate _CORE_ASG_TU_RUN Hours Hours X Rate_CORE_ASG_TU_PY_PTD Hours Hours X Rate _CORE_ASG_TU_YTD Hours

Retro Component Usages CREATOR TYPE ET CREATOR Days X Rate RETROReplacement COMPONENT DEFAULT Y COMPONENT REPROCESS R TYPEExample Percentage of Earnings Predefined Template:

Element Types CLASSIFICATION {Chosen classification} NAME ADDITIONAL{RULE:Over Ride DEFAULT:N} ENTRY ALLOWED FLAG ADJUSTMENT N ONLY FLAGCLOSED FOR N ENTRY FLAG ELEMENT NAME Percentage of Earnings INDIRECTONLY N FLAG MULTIPLE {RULE:Multiple Entries DEFAULT:Y} ENTRIES ALLOWEDFLAG STARTING TIME {RULE: Hire Process DEFAULT:On Hire Date} DEF ENDINGTIME DEF {RULE: Termination Process DEFAULT:On Final Close Date} PROCESSIN RUN Y FLAG RELATIVE 0 PROCESSING PRIORITY PROCESSING {RULE:RecurringOr NonRecurring VALUE:N} TYPE STANDARD LINK {RULE:Availability RuleDEFAULT:N} FLAG INPUT {RULE:Specify Currency DEFAULT:<Currency code forthe given CURRENCY CODE country>} OUTPUT {RULE:Output CurrencyDEFAULT:<Currency of the given CURRENCY CODE country>} ONCE EACH{RULE:Once Per Period DEFAULT:N} PERIOD FLAG USE AT REL {RULE: ProcessRel Level DEFAULT:N} LEVEL USE AT TERM {RULE: Process Term LevelDEFAULT:N} LEVEL USE AT ASG {RULE: Process Asg Level DEFAULT:Y} LEVELPRORATION _PERCENTAGE_OF_EARNINGS_PRORATION FORMULA PRORATION{RULE:Proration DEFAULT:N} GROUP TIME DEFINITION ? TYPE TIME DEFINITION? RECALC EVENT {RULE:Retro DEFAULT:N} GROUP REPORTING NAME ITERATIVEFLAG {RULE:Iterative Information DEFAULT:N} ITERATIVE DEFAULT_GROSSUPFORMULA ITERATIVE 10 PRIORITY PROCESS MODE {RULE:Process PeriodDEFAULT:S}

Element Type Usages ELEMENT Percentage of Percentage of Percentage ofPercentage of TYPE Earnings Earnings Earnings Earnings INCLUSION N N N NFLAG RUN TYPE Separate Process Separate Process NAME Payment SeparatelyPayment - Non Separately - Periodic Non Periodic EXCLUSION {RULE: {RULE:{RULE: {RULE: RULE Recurring Or Recurring Or Recurring Or Recurring OrNonRecurring NonRecurring NonRecurring NonRecurring VALUE:R} VALUE:R}VALUE:N} VALUE:N}

Fast Formulas FORMULA NAME _PCT_EARN DESCRIPTION Formula for Percentageof Earnings Template FORMULA/************************************************* TEXT***************************** FORMULA NAME: ‘_PCT_EARN’ FORMULA TYPE:Payroll DESCRIPTION:       This formula applies a percentage to theappropriate        regular earnings of an employee according to thefollowing        rules in descending priority ::     1) Salary Admin PayBasis: REGULAR_SALARY * Percentage        if Pay Basis not hourly; else       ASG_SALARY * Percentage * normal period hours************************************************** ********************FORMULA TEXT Formula Results :  template_earning  Direct Result forEarnings Amount (ie. Pay Value). mesg   Message indicating that thisearnings will be deleted for     for this assignment.************************************************************************/ /* ===== Defaults Section Begin ===== */ defaultfor ASG_SALARY is 0 default for ASG_SALARY_BASIS_CODE is ‘NOT ENTERED’default for GROSS_PAY_ASG_GRE_RUN is 0 Default for <BASENAME>_ASG_GRE_RUN is 0 Default for <BASE NAME>_ASG_GRE_YTD is 0 defaultfor HR_WORK_SCHEDULE is ‘NOT ENTERED’ default for ASG_HOURS is 0 defaultfor Percentage is 0 default for PAY_PROC_PERIOD_START_DATE is‘0001/01/01 00:00:00’ (DATE) default for PAY_PROC_PERIOD_END_DATE is‘0001/01/02 00:00:00’ (DATE) default for ASG_FREQ_CODE is ‘NOT ENTERED’/* ===== Defaults Section End ===== */ /* ===== Inputs Section Begin===== */ Inputs are Percentage /* ===== Inputs Section End ===== */ /*===== Updatable Values Section ===== */ RATE_TABLE = /**/ ‘WAGE RATES’/**/ RATE_TABLE_COLUMN   = /**/ ‘Wage Rate’ /**/ /* ===== UpdatableValues Section ===== */ /* ===== CALCULATION SECTION BEGIN ===== */   IFASG_SALARY_BASIS_CODE = ‘HOURLY’ THEN    ( regular_rate = ASG_SALARY    period_hours = Convert_Period_Type(SCL_ASG_MX_WORK_SCHEDULE,ASG_HOURS, ASG_HOURS, ASG_FREQ_CODE, ‘PERIOD’,PAY_PROC_PERIOD_START_DATE, PAY_PROC_PERIOD_END_DATE, ASG_FREQ_CODE)   earnings_amount = ROUNDUP(         (Percentage * regular_rate *period_hours / 100) ,2)    )   ELSE    earnings_amount = ROUNDUP(            (Percentage * <BASE NAME>_ASG_GRE_RUN / 100 ),2) /* =====CALCULATION SECTION END ===== */ /* ===== Returns Section Begin ===== */RETURN earnings_amount,     mesg,     mesg_err /* ===== Returns SectionEnd ===== */ /* End Program */ FORMULA NAME_PERCENTAGE_OF_EARNINGS_PRORATION DESCRIPTION Formula for Percentage ofEarnings Proration Template FORMULA/************************************************* TEXT ***********Description : Formula to calculate pro rated amounts. DISCLAIMER : Thisformula is strictly for example or prototype  purposes only. You shouldupdate the formula to meet your particular  requirements. This formulamay contain certain hard  coded values to simplify the use of formulasfor proration. A typical example  of proration would be when a newemployee starts work in the middle of a  monthly payroll period and yourpayroll department makes a pro-rata payment  to reflect the proportionof monthly pay to which the employee is entitled.  The prototype formulasupplied is only designed to work for payroll  calculations involvingproration and should not be used for any other purpose.  Any use of theformula is subject to the terms of the Oracle license agreement  for theHRMS programs and documentation.************************************************** ***********/ defaultfor prorate_start is ‘01-JAN-1900’ (date) default for prorate_end is‘01-JAN-1900’ (date) default for amount is 0.0 inputs are prorate_start(date), prorate_end (date), annual_amount (number) /**  Prorate_startand prorate_end dates are passed from the payroll engine. These  datesbasically represent the dates on which the changes occur in the deduction amount during the pay period. annual_amount is an input value created in the element to which this formula will be tied. Here the assumption is that the user enters the annual deduction amount in the input value. **/ l_amount = annual_amount message = ‘Proration StartDate ’ || TO_CHAR(prorate_start, ‘DD-MON-YYYY’) IF (prorate_start wasdefaulted) then ( /**  prorate_start date is defaulted when no proration occurs. Therefore we  should just return the annual deductionamount divided by 12. **/   l_amount = l_amount / 12   return l_amount,message ) else (    l_days = days_between(prorate_end , prorate_start) +1 /**  l_days stores the number of days between prorate start andprorate  end dates **/    l_days_in_fiscal_year = 365 /**    It isanother assumption that a year contains 365 days. Please change    thisassumption to take care of leap year. This formula will not work   properly in a leap year. **/    l_amount = (l_amount * l_days) /l_days_in_fiscal_year /**  In the above calculation, since l_amountcontains the annual deduction amount,  it is divided by 365 days of theyear to get the deduction amount per day.  This amount is thenmultiplied by the number of days in question to get  the properdeduction amount **/ return l_amount, message )

Formula Rules SHADOW ELEMENT TYPE Percentage of Earnings FORMULA_PCT_EARN ELEMENT TYPE Percentage of Earnings EXCLUSION RULE RESULT NAMEearnings_amount INPUT VALUE Pay Value RESULT RULE TYPE D

Balance Types EXCLUSION RULE ASSIGNMENT N REMUNERATION FLAG BALANCE NAMEPercentage of Earnings BALANCE UOM M CURRENCY CODE {RULE:Output CurrencyDEFAULT:<Currency of the given country>} COMMENTS Primary balance forPercentage of Earnings. REPORTING NAME CATEGORY NAME Earnings BASEBALANCE TYPE INPUT VALUE Pay Value

Input Values ELEMENT TYPE Percentage of Percentage of Percentage ofEarnings Earnings Earnings EXCLUSION RULE DISPLAY 1 2 5 SEQUENCEGENERATE DB Y Y Y ITEMS FLAG HOT DEFAULT N N N FLAG MANDATORY X N X FLAGNAME Pay Value Percentage Jurisdiction UOM M M C LOOKUP TYPE DEFAULTVALUE DEFAULT VALUE COLUMN

Balance Feeds INPUT VALUE Pay Value BALANCE Percentage of TYPE EarningsEXCLUSION RULE SCALE 1 BALANCE NAME

Defined Balances EXCLUSION BALANCE TYPE DIMENSION RULE Percentage of_CORE_PRS_RUN Earnings Percentage of _CORE_PRS_PY_PTD EarningsPercentage of _CORE_PRS_MTD Earnings Percentage of _CORE_PRS_QTDEarnings Percentage of _CORE_PRS_YTD Earnings Percentage of_CORE_PRS_TU_RUN Earnings Percentage of _CORE_PRS_TU_PY_PTD EarningsPercentage of _CORE_PRS_TU_YTD Earnings Percentage of _CORE_ASG_RUNEarnings Percentage of _CORE_ASG_PY_PTD Earnings Percentage of_CORE_ASG_MTD Earnings Percentage of _CORE_ASG_QTD Earnings Percentageof _CORE_ASG_YTD Earnings Percentage of _CORE_ASG_TU_RUN EarningsPercentage of _CORE_ASG_TU_PY_PTD Earnings Percentage of_CORE_ASG_TU_YTD Earnings

Retro Component Usages CREATOR TYPE ET CREATOR Percentage of EarningsRETRO Replacement COMPONENT DEFAULT Y COMPONENT REPROCESS R TYPEExample Flat Amount Deduction Element Predefined Template:

Element Types CLASSIFICATION {Chosen classification} NAME ADDITIONALENTRY: {RULE:Over Ride DEFAULT:N} ALLOWED FLAG ADJUSTMENT ONLY N FLAGCLOSED FOR ENTRY N FLAG ELEMENT NAME Flat Amount Deduction INDIRECT ONLYFLAG N MULTIPLE ENTRIES {RULE:Multiple Entries DEFAULT:N} ALLOWED FLAGSTARTING TIME DEF {RULE: Hire Process DEFAULT:On Hire Date} ENDING TIMEDEF {RULE: Termination Process DEFAULT:On Final Close Date} PROCESS INRUN Y FLAG RELATIVE 0 PROCESSING PRIORITY PROCESSING TYPE{RULE:Recurring Or NonRecurring VALUE:N} STANDARD LINK FLAG{RULE:Availability Rule DEFAULT:N} INPUT CURRENCY {RULE:Specify CurrencyDEFAULT:<Currency code for the CODE given country>} OUTPUT CURRENCY{RULE:Output Currency DEFAULT:<Currency of the given CODE country>} ONCEEACH PERIOD {RULE:Once Per Period DEFAULT:N} FLAG USE AT REL LEVEL{RULE: Process Rel Level DEFAULT:N} USE AT TERM LEVEL {RULE: ProcessTerm Level DEFAULT:N} USE AT ASG LEVEL {RULE: Process Asg LevelDEFAULT:Y} PRORATION _FLAT_AMOUNT_DEDUCTION_PRORATION FORMULA PRORATIONGROUP {RULE:Proration DEFAULT:N} TIME DEFINITION ? TYPE TIME DEFINITION? RECALC EVENT {RULE:Retro DEFAULT:N} GROUP REPORTING NAME ITERATIVEFLAG {RULE:Iterative Information DEFAULT:N} ITERATIVE FORMULADEFAULT_GROSSUP ITERATIVE PRIORITY 10 PROCESS MODE Element TypesCLASSIFICATION {Chosen classification} NAME ADDITIONAL {RULE:Over RideDEFAULT:N} ENTRY ALLOWED FLAG ADJUSTMENT N ONLY FLAG CLOSED FOR N ENTRYFLAG ELEMENT NAME Flat Amount Deduction Special Feature INDIRECT ONLY NFLAG MULTIPLE ENTRIES {RULE:Multiple Entries DEFAULT:N} ALLOWED FLAGSTARTING TIME {RULE: Hire Process DEFAULT:On Hire Date} DEF ENDING TIMEDEF {RULE: Termination Process DEFAULT:On Final Close Date} PROCESS INRUN Y FLAG RELATIVE 50 PROCESSING PRIORITY PROCESSING TYPE{RULE:Recurring Or NonRecurring VALUE:N} STANDARD LINK{RULE:Availability Rule DEFAULT:N} FLAG INPUT CURRENCY {RULE:SpecifyCurrency DEFAULT:<Currency code for the CODE given country>} OUTPUT{RULE:Output Currency DEFAULT:<Currency of the given CURRENCY CODEcountry>} ONCE EACH PERIOD FLAG USE AT REL LEVEL USE AT TERM LEVEL USEAT ASG LEVEL PRORATION ? FORMULA PRORATION ? GROUP TIME DEFINITION ?TYPE TIME DEFINITION ? RECALC EVENT ? GROUP REPORTING NAME SF ITERATIVEFLAG ? ITERATIVE ? FORMULA

ITERATIVE ? PRIORITY PROCESS MODE

Element Type Usages ELEMENT Flat Flat Amount Flat Amount Flat AmountTYPE Amount Deduction Deduction Deduction Deduction INCLUSION N N N NFLAG RUN TYPE Separate Process Process Separate NAME Payment SeparatelySeparately - Payment - Non Periodic Non Periodic EXCLUSION {RULE: {RULE:{RULE: {RULE: RULE Recurring Recurring Or Recurring Or Recurring Or OrNon Non- Non- Non- Recurring Recurring Recurring Recurring VALUE:R}VALUE:R} VALUE:N} VALUE:N}

Fast Formulas FORMULA NAME _FLAT_AMOUNT_DEDN DESCRIPTION Flat Amountformula for Deduction Template FORMULA/************************************************* TEXT**************************** FORMULA NAME: _FLAT_AMOUNT_DEDN FORMULATYPE: Payroll DESCRIPTION: Formula for Flat Amount for DeductionTemplate. Returns pay value (Amount);******************************************************************************* FORMULA TEXT Formula Results :  dedn_amtDirect Result for Deduction Amount  not_taken Update Deduction RecurringEntry Not Taken  to_arrears Update Deduction Recurring Entry ArrearsContr  set_clear Update Deduction Recurring Entry Clear Arrears STOP_ENTRY Stop current recurring entry  to_total_owed Update DeductionRecurring Entry Accrued  mesg Message (Warning)*******************************************************************************/ /* Database Item Defaults */ default forINSUFFICIENT_FUNDS_TYPE is  ‘NOT ENTERED’ /* ===== Database ItemDefaults End ===== */ /* ===== Input Value Defaults Begin ===== */default for Total_Owed is 0 default for Clear_Arrears (text) is  ‘N’default for Amount is 0 /* ===== Input Value Defaults End ===== */DEFAULT FOR mesg is ‘NOT ENTERED’ /* ===== Inputs Section Begin ===== */INPUTS ARE     Amount    ,Total_Owed    ,Clear_Arrears (text) /* =====Inputs Section End ===== */ dedn_amt = Amount to_total_owed = 0to_arrears = 0 to_not_taken = 0 total_dedn = 0 insuff_funds_type =INSUFFICIENT_FUNDS_TYPE net_amount = NET_PAY_ASG_GRE_RUN /* ==== EntryITD Check Begin ==== */  IF ( <BASE_NAME>_ACCRUED_ENTRY_ITD = 0 AND<BASE_NAME>_ACCRUED_ASG_GRE_ITD < > 0 ) THEN  (   to_total_owed = −1 *<BASE_NAME>_ACCRUED_ASG_GRE_ITD + dedn_amt  )  IF (<BASE_NAME>_ARREARS_ENTRY_ITD = 0 AND <BASE_NAME>_ARREARS_ASG_GRE_ITD< > 0 ) THEN  (   to_arrears = −1 * <BASE_NAME>_ARREARS_ASG_GRE_ITD  )/* ==== Entry ITD Check End ==== */ /* ===== Arrears Section Begin =====*/  IF Clear_Arrears = ‘Y’ THEN  (   to_arrears = −1 *<BASE_NAME>_ARREARS_ASG_GRE_ITD   set_clear = ‘No’  )  ELSE  (   IF<BASE_NAME>_ARREARS_ASG_GRE_ITD < > 0 THEN   (    to_arrears = −1 *<BASE_NAME>_ARREARS_ASG_GRE_ITD   )  )  IF ( net_amount − dedn_amt < 0 )THEN  (   IF insuff_funds_type = ‘ERRA’ THEN   (    mesg =GET_MESG(‘PAY’,‘PAY_INSUFF_FUNDS_FOR_DED’)    RETURN mesg   )  )  /*When there is no arrears */  IF ( insuff_funds_type = ‘PD’ ORinsuff_funds_type = ‘NONE’ ) THEN  (   IF ( net_amount − dedn_amt >= 0 )THEN   (    to_arrears = 0    to_not_taken = 0    dedn_amt = dedn_amt  )   ELSE   (    IF ( insuff_funds_type = ‘PD’ ) THEN    (    to_arrears = 0     to_not_taken = dedn_amt − net_amount     dedn_amt= net_amount    )    ELSE    (     to_arrears = 0     to_not_taken =dedn_amt     dedn_amt = 0    )   )  )  ELSE /* When there is arrears */ (   IF ( net_amount <= 0 ) THEN   (    to_arrears = dedn_amt   to_not_taken = dedn_amt    dedn_amt = 0   )   ELSE   (    total_dedn= dedn_amt + <BASE_NAME>_ARREARS_ASG_GRE_ITD    IF ( net_amount >=total_dedn ) THEN    (     to_arrears = −1 *<BASE_NAME>_ARREARS_ASG_GRE_ITD     to_not_taken = 0     dedn_amt =total_dedn    )    ELSE    (     IF ( insuff_funds_type = ‘APD’ ) THEN    (      to_arrears = total_dedn − net_amount      to_arrears =to_arrears − <BASE_NAME>_ARREARS_ASG_GRE_ITD      IF ( net_amount >=dedn_amt ) THEN      (       to_not_taken = 0      )     ELSE      (      to_not_taken = to_arrears      )      dedn_amt = net_amount     )    ELSE     (      IF ( net_amount >= dedn_amt ) THEN      (      to_arrears = 0       to_not_taken = 0       dedn_amt = dedn_amt     )      ELSE      (       to_arrears = dedn_amt       to_not_taken =dedn_amt       dedn_amt = 0      )     )    )   )  ) /* ===== ArrearsSection End ===== */ /* ===== Stop Rule Section Begin *===== */ to_total_owed = dedn_amt  IF Total_Owed WAS NOT DEFAULTED THEN  (  total_accrued = dedn_amt + <BASE_NAME>_ACCRUED_ASG_GRE_ITD   IFtotal_accrued >= Total_Owed THEN   (    dedn_amt = Total_Owed −<BASE_NAME>_ACCRUED_ASG_GRE_ITD    /* The total has been reached - thereturn will stop the entry under     these conditions. Also, zero outAccrued balance. */ to_total_owed = −1 * <BASE_NAME>_ACCRUED_ASG_GRE_ITD   STOP_ENTRY = ‘Y’    mesg = GET_MESG(‘PAY’,‘PAY_STOPPED_ENTRY’,‘BASE_NAME’,‘<BASE_NAME>’)   )  ) /* ===== Stop Rule Section End =====*/  RETURN dedn_amt,    to_not_taken,    to_arrears,    to_total_owed,   STOP_ENTRY,    set_clear,    mesg /* End Formula Text */ FORMULA NAME_FLAT_AMOUNT_DEDUCTION_PRORATION DESCRIPTION Formula for Flat AmountDeduction Proration Template FORMULA/************************************************** TEXT **********Description : Formula to calculate pro rated amounts. DISCLAIMER : Thisformula is strictly for example or prototype  purposes only. You shouldupdate the formula to meet your particular  requirements. This formulamay contain certain hard  coded values to simplify the use of formulasfor proration. A typical example  of proration would be when a newemployee starts work in the middle of a  monthly payroll period and yourpayroll department makes a pro-rata payment  to reflect the proportionof monthly pay to which the employee is entitled.  The prototype formulasupplied is only designed to work for payroll  calculations involvingproration and should not be used for any other purpose.  Any use of theformula is subject to the terms of the Oracle license agreement  for theHRMS programs and documentation.*************************************************** **********/ defaultfor prorate_start is ‘01-JAN-1900’ (date) default for prorate_end is‘01-JAN-1900’ (date) default for amount is 0.0 inputs are prorate_start(date), prorate_end (date), annual_amount (number) /**  Prorate_startand prorate_end dates are passed from the payroll engine. These  datesbasically represent the dates on which the changes occur in the deduction amount during the pay period. annual_amount is an input value created in the element to which this formula will be tied. Here the assumption is that the user enters the annual deduction amount in the input value. **/ l_amount = annual_amount message = ‘Proration StartDate ’ || TO_CHAR(prorate_start, ‘DD-MON-YYYY’) IF (prorate_start wasdefaulted) then ( /**  prorate_start date is defaulted when no proration occurs. Therefore we  should just return the annual deductionamount divided by 12. **/   l_amount = l_amount / 12   return l_amount,message ) else (    l_days = days_between(prorate_end , prorate_start) +1 /**  l_days stores the number of days between prorate start andprorate  end dates **/    l_days_in_fiscal_year = 365 /**   It isanother assumption that a year contains 365 days. Please change   thisassumption to take care of leap year. This formula will not work  properly in a leap year. **/    l_amount = (l_amount * l_days) /l_days_in_fiscal_year /**  In the above calculation, since l_amountcontains the annual deduction amount,  it is divided by 365 days of theyear to get the deduction amount per day.  This amount is thenmultiplied by the number of days in question to get  the properdeduction amount **/ return l_amount, message )

Formula Rules SHADOW Flat Amount Flat Amount Flat Amount DeductionELEMENT Deduction Deduction TYPE FORMULA _FLAT_AMOUNT_DEDN_FLAT_AMOUNT_DEDN _FLAT_AMOUNT_DEDN ELEMENT Flat Amount Flat Amount FlatAmount Deduction TYPE Deduction Deduction Special Special FeatureFeature EXCLUSION {RULE:Earning {RULE:Total Reached RULE ThresholdVALUE:N} VALUE:ERRA}, {RULE:Earning Threshold VALUE:NONE}, {RULE:EarningThreshold VALUE:PD} RESULT dedn_amt to_arrears to_total_owed NAME INPUTPay Value Arrears Contr Accrued VALUE RESULT D I I RULE TYPE FormulaRules SHADOW Flat Amount Flat Amount Deduction Flat Amount ELEMENTDeduction Deduction TYPE FORMULA _FLAT_AMOUNT_DEDN _FLAT_AMOUNT_DEDN_FLAT_AMOUNT_DEDN ELEMENT Flat Amount Flat Amount Deduction Flat AmountTYPE Deduction Deduction Special Feature EXCLUSION {RULE:Total{RULE:Earning RULE Reached Threshold VALUE:N} VALUE:ERRA}, {RULE:EarningThreshold VALUE:NONE}, {RULE:Earning Threshold VALUE:PD} RESULTSTOP_ENTRY set_clear to_not_taken NAME INPUT VALUE Clear Arrears NotTaken RESULT RULE S U I TYPE

Balance Types EXCLUSION RULE ASSIGNMENT N N N N REMUNERATION FLAGBALANCE NAME Flat Amount Flat Amount Flat Amount Flat Amount DeductionDeduction Deduction Deduction Not Taken Accrued Arrears BALANCE UOM M MM M CURRENCY {RULE: {RULE: {RULE: {RULE:Output CODE Output Output OutputCurrency Currency Currency Currency DEFAULT:<Currency DEFAULT:<CurrencyDEFAULT:<Currency DEFAULT:<Currency of the given of of of country>} thegiven the given the given country>} country>} country>} COMMENTS PrimaryAccrued Arrears Not Taken balance balance for balance for balance forfor Flat Amount Flat Amount Flat Amount Flat Amount Deductions.Deductions. Deductions. Deductions. REPORTING Accrued Arrears Not TakenNAME CATEGORY Deductions Wages Wages Wages NAME BASE BALANCE Flat AmountFlat Amount Flat Amount TYPE Deduction Deduction Deduction INPUT VALUEPay Value

Input Values ELEMENT Flat Flat Flat Amount Flat Flat Amount TYPE AmountAmount Deduction Amount Deduction Deduction Deduction Deduction SpecialFeatures EXCLUSION {RULE:Earning {RULE: RULE Threshold TotalVALUE:ERRA}, Reached {RULE:Earning VALUE:N} Threshold VALUE:NONE},{RULE:Earning Threshold VALUE:PD} EXCLUSION RULE VALUE DISPLAY 1 2 3 4 1SEQUENCE GENERATE Y Y Y Y Y DB ITEMS FLAG HOT DEFAULT N N N N N FLAGMANDATORY X N N N X FLAG NAME Pay Value Amount Clear Arrears Total PayValue Owed UOM M M C M M LOOKUP YES_NO TYPE DEFAULT N VALUE DEFAULTVALUE COLUMN Input Values ELEMENT Flat Amount Flat Amount Flat AmountDeduction TYPE Deduction Special Deduction Special Features FeaturesSpecial Features EXCLUSION {RULE: Total {RULE:Earning Threshold RULEReached VALUE:ERRA}, VALUE:N} {RULE:Earning Threshold VALUE:NONE},{RULE:Earning Threshold VALUE:PD} DISPLAY 2 3 4 SEQUENCE GENERATE Y Y YDB ITEMS FLAG HOT DEFAULT N N N FLAG MANDATORY X X X FLAG NAME AccruedNot Taken Arrears Contr UOM M M M LOOKUP TYPE DEFAULT VALUE DEFAULTVALUE COLUMN

Balance Feeds INPUT Pay Arrears Contr Not Taken Accrued VALUE ValueBALANCE Flat Flat Amount Flat Amount Flat TYPE Amount DeductionDeduction Not Amount Deduc- Arrears Taken Deduction tion Accrued EXCLU-{RULE:Earning {RULE:Earning SION Threshold Threshold RULE VALUE:ERRA},VALUE:ERRA}, {RULE:Earning {RULE:Earning Threshold ThresholdVALUE:NONE}, VALUE:NONE}, {RULE:Earning {RULE:Earning ThresholdThreshold VALUE:PD} VALUE:PD} SCALE 1 1 1 1 BALANCE Pay Arrears ContrNot Taken Accrued NAME Value

Defined Balances EXCLUSION BALANCE TYPE DIMENSION RULE Flat Amount_CORE_PRS_RUN Deduction Flat Amount _CORE_PRS_PY_PTD Deduction FlatAmount _CORE_PRS_MTD Deduction Flat Amount _CORE_PRS_QTD Deduction FlatAmount _CORE_PRS_YTD Deduction Flat Amount _CORE_PRS_TU_RUN DeductionFlat Amount _CORE_PRS_TU_PY_PTD Deduction Flat Amount _CORE_PRS_TU_YTDDeduction Flat Amount _CORE_ASG_RUN Deduction Flat Amount_CORE_ASG_PY_PTD Deduction Flat Amount _CORE_ASG_MTD Deduction FlatAmount _CORE_ASG_QTD Deduction Flat Amount _CORE_ASG_YTD Deduction FlatAmount _CORE_ASG_TU_RUN Deduction Flat Amount _CORE_ASG_TU_PY_PTDDeduction Flat Amount _CORE_ASG_TU_YTD Deduction Flat Amount_CORE_ASG_LTD Deduction Flat Amount _CORE_ASG_TU_LTD Deduction FlatAmount _CORE_PRS_LTD Deduction Flat Amount _CORE_PRS_TU_LTD DeductionFlat Amount _CORE_PRS_RUN Deduction Arrears Flat Amount _CORE_PRS_PY_PTDDeduction Arrears Flat Amount _CORE_PRS_MTD Deduction Arrears FlatAmount _CORE_PRS_QTD Deduction Arrears Flat Amount _CORE_PRS_YTDDeduction Arrears Flat Amount _CORE_PRS_TU_RUN Deduction Arrears FlatAmount _CORE_PRS_TU_PY_PTD Deduction Arrears Flat Amount_CORE_PRS_TU_YTD Deduction Arrears Flat Amount _CORE_ASG_RUN DeductionArrears Flat Amount _CORE_ASG_PY_PTD Deduction Arrears Flat Amount_CORE_ASG_MTD Deduction Arrears Flat Amount _CORE_ASG_QTD DeductionArrears Flat Amount _CORE_ASG_YTD Deduction Arrears Flat Amount_CORE_ASG_TU_RUN Deduction Arrears Flat Amount _CORE_ASG_TU_PY_PTDDeduction Arrears Flat Amount _CORE_ASG_TU_YTD Deduction Arrears FlatAmount _CORE_ASG_LTD Deduction Arrears Flat Amount _CORE_ASG_TU_LTDDeduction Arrears Flat Amount _CORE_ASG_EE_LTD Deduction Arrears FlatAmount _CORE_PRS_LTD Deduction Arrears Flat Amount _CORE_PRS_TU_LTDDeduction Arrears Flat Amount _CORE_PRS_RUN Deduction Not Taken FlatAmount _CORE_PRS_PY_PTD Deduction Not Taken Flat Amount _CORE_PRS_MTDDeduction Not Taken Flat Amount _CORE_PRS_QTD Deduction Not Taken FlatAmount _CORE_PRS_YTD Deduction Not Taken Flat Amount _CORE_PRS_TU_RUNDeduction Not Taken Flat Amount _CORE_PRS_TU_PY_PTD Deduction Not TakenFlat Amount _CORE_PRS_TU_YTD Deduction Not Taken Flat Amount_CORE_ASG_RUN Deduction Not Taken Flat Amount _CORE_ASG_PY_PTD DeductionNot Taken Flat Amount _CORE_ASG_MTD Deduction Not Taken Flat Amount_CORE_ASG_QTD Deduction Not Taken Flat Amount _CORE_ASG_YTD DeductionNot Taken Flat Amount _CORE_ASG_TU_RUN Deduction Not Taken Flat Amount_CORE_ASG_TU_PY_PTD Deduction Not Taken Flat Amount _CORE_ASG_TU_YTDDeduction Not Taken Flat Amount _CORE_ASG_LTD Deduction Not Taken FlatAmount _CORE_ASG_TU_LTD Deduction Not Taken Flat Amount _CORE_PRS_LTDDeduction Not Taken Flat Amount _CORE_PRS_TU_LTD Deduction Not TakenFlat Amount _CORE_PRS_RUN Deduction Accrued Flat Amount _CORE_PRS_PY_PTDDeduction Accrued Flat Amount _CORE_PRS_MTD Deduction Accrued FlatAmount _CORE_PRS_QTD Deduction Accrued Flat Amount _CORE_PRS_YTDDeduction Accrued Flat Amount _CORE_PRS_TU_RUN Deduction Accrued FlatAmount _CORE_PRS_TU_PY_PTD Deduction Accrued Flat Amount_CORE_PRS_TU_YTD Deduction Accrued Flat Amount _CORE_ASG_RUN DeductionAccrued Flat Amount _CORE_ASG_PY_PTD Deduction Accrued Flat Amount_CORE_ASG_MTD Deduction Accrued Flat Amount _CORE_ASG_QTD DeductionAccrued Flat Amount _CORE_ASG_YTD Deduction Accrued Flat Amount_CORE_ASG_TU_RUN Deduction Accrued Flat Amount _CORE_ASG_TU_PY_PTDDeduction Accrued Flat Amount _CORE_ASG_TU_YTD Deduction Accrued FlatAmount _CORE_ASG_LTD Deduction Accrued Flat Amount _CORE_ASG_TU_LTDDeduction Accrued Flat Amount _CORE_ASG_EE_LTD Deduction Accrued FlatAmount _CORE_PRS_LTD Deduction Accrued Flat Amount _CORE_PRS_TU_LTDDeduction Accrued

Retro Component Usages CREATOR TYPE ET CREATOR Flat Amount DeductionRETRO Replacement COMPONENT DEFAULT Y COMPONENT REPROCESS R TYPEExample Percentage of Deduction Predefined Template:

Element Types CLASSIFICATION {Chosen classification} NAME ADDITIONALENTRY {RULE:Over Ride DEFAULT:N} ALLOWED FLAG ADJUSTMENT ONLY N FLAGCLOSED FOR ENTRY N FLAG ELEMENT NAME Percentage Deduction SpecialFeature INDIRECT ONLY N FLAG MULTIPLE ENTRIES {RULE:Multiple EntriesDEFAULT:N} ALLOWED FLAG STARTING TIME DEF {RULE: Hire Process DEFAULT:OnHire Date} ENDING TIME DEF {RULE: Termination Process DEFAULT:On FinalClose Date} PROCESS IN RUN Y FLAG RELATIVE 50 PROCESSING PRIORITYPROCESSING TYPE {RULE:Recurring Or NonRecurring VALUE:N} STANDARD LINK{RULE:Availability Rule DEFAULT:N} FLAG INPUT CURRENCY {RULE:SpecifyCurrency DEFAULT:<Currency code for the CODE given country>} OUTPUTCURRENCY {RULE:Output Currency DEFAULT:<Currency of the given CODEcountry>} ONCE EACH PERIOD FLAG USE AT REL LEVEL USE AT TERM LEVEL USEAT ASG LEVEL PRORATION _PERCENTAGE_OF_DEDUCTION_PRORATION FORMULAPRORATION GROUP {RULE:Proration DEFAULT:N} TIME DEFINITION ? TYPE TIMEDEFINITION ? RECALC EVENT {RULE:Retro DEFAULT:N} GROUP REPORTING NAME SFITERATIVE FLAG {RULE:Iterative Information DEFAULT:N} ITERATIVE FORMULADEFAULT_GROSSUP ITERATIVE PRIORITY 10 PROCESS MODE

Element Type Usages ELEMENT TYPE INCLUSION FLAG RUN TYPE NAME EXCLUSIONRULE

Fast Formulas FORMULA NAME _PCT_DEDN DESCRIPTION Percentage Deductionformula for Deduction Template FORMULA/************************************************* TEXT**************************** FORMULA NAME: _PCT_DEDN FORMULA TYPE:Payroll DESCRIPTION: Formula for Flat Amount for Deduction Template.Returns pay value (Amount);******************************************************************************* FORMULA TEXT Formula Results :  dedn_amtDirect Result for Deduction Amount  not_taken Update Deduction RecurringEntry Not Taken  to_arrears Update Deduction Recurring Entry ArrearsContr  set_clear Update Deduction Recurring Entry Clear Arrears STOP_ENTRY Stop current recurring entry  to_total_owed Update DeductionRecurring Entry Accrued  mesg Message (Warning)*******************************************************************************/ /* Database Item Defaults */ default forINSUFFICIENT_FUNDS_TYPE   is ‘NOT ENTERED’ /* ===== Database ItemDefaults End ===== */ /* ===== Input Value Defaults Begin ===== */DEFAULT FOR Total_Owed IS 0 DEFAULT FOR Clear_Arrears (text) IS ‘N’DEFAULT FOR Percentage IS 0 /* ===== Input Value Defaults End ===== */DEFAULT FOR mesg IS ‘NOT ENTERED’ /* ===== Inputs Section Begin ===== */INPUTS ARE    Percentage    ,Total_Owed   ,Clear_Arrears (text) /* =====Inputs Section End ===== */ IF Percentage WAS DEFAULTED THEN (   mesg =GET_MESG(‘PAY’,‘PAY_NO_VALUE_TO_CALC_DED’ ,‘BASE_NAME’,‘<BASE_NAME>’)  RETURN mesg ) ELSE (   dedn_amt = (Percentage *<BASE_NAME>_ELIGIBLE_COMP_ASG_GRE_RUN  /  100) /*---------------------------------------------- -----------------------CUSTOMER :  The formula is generated with a default to use the Eligible   Compensation to calculate % of Earnings. The Eligible Compensation   balance is initially defined with the same balance feeds as theRegular    Earnings balance.    You can modify the earnings basis forthis calculation by    adding and deleting balance feeds to the   <BASE_NAME>_ELIGIBLE_COMP balance.    If you want the formula to useanother balance of earnings in    the run, replace the<BASE_NAME>_ELIGIBLE_COMP_ASG_GRE_RUN database item    reference belowwith the database item for the balance of choice :<BALANCE_NAME_IN_UPPER_CASE/UNDERSCORES>_ASG_GRE_RUN ------------------------------------------------- --------------------*/ ) to_total_owed = 0 to_arrears = 0 to_not_taken = 0 total_dedn = 0insuff_funds_type = INSUFFICIENT_FUNDS_TYPE net_amount =NET_PAY_ASG_GRE_RUN /* ====  Entry ITD Check Begin ==== */   IF (<BASE_NAME>_ACCRUED_ENTRY_ITD = 0 AND    <BASE_NAME>_ACCRUED_ASG_GRE_ITD <> 0 ) THEN   (    to_total_owed =−1 * <BASE_NAME>_ACCRUED_ASG_GRE_ITD + dedn_amt   )   IF (<BASE_NAME>_ARREARS_ENTRY_ITD = 0 AND    <BASE_NAME>_ARREARS_ASG_GRE_ITD <> 0 ) THEN   (    to_arrears = −1 *<BASE_NAME>_ARREARS_ASG_GRE_ITD   ) /* ====  Entry ITD Check End ==== *//* ===== Arrears Section Begin ===== */   IF Clear_Arrears = ‘Y’ THEN  (    to_arrears = −1 * <BASE_NAME>_ARREARS_ASG_GRE_ITD    set_clear =‘No’   )   ELSE   (    IF <BASE_NAME>_ARREARS_ASG_GRE_ITD <> 0 THEN    (     to_arrears = −1 * <BASE_NAME>_ARREARS_ASG_GRE_ITD    )   )   IF (net_amount − dedn_amt < 0 ) THEN   (    IF insuff_funds_type = ‘ERRA’THEN    (      mesg = GET_MESG(‘PAY’,‘PAY_MX_INSUFF_FUNDS_FOR_DED’)     RETURN mesg    )   )   /* When there is no arrears */   IF (insuff_funds_type = ‘PD’ OR     insuff_funds_type = ‘NONE’ ) THEN   (   IF ( net_amount − dedn_amt >= 0 ) THEN    (      to_arrears = 0     to_not_taken = 0      dedn_amt = dedn_amt    )    ELSE    (      IF( insuff_funds_type = ‘PD’ ) THEN      (       to_arrears = 0      to_not_taken = dedn_amt − net amount       dedn_amt = net_amount     )      ELSE      (       to_arrears = 0       to_not_taken =dedn_amt       dedn_amt = 0      )    )   )   ELSE /* When there isarrears */   (    IF ( net_amount <= 0 ) THEN    (      to_arrears =dedn_amt      to_not_taken = dedn_amt      dedn_amt = 0    )    ELSE   (      total_dedn = dedn_amt + <BASE_NAME>_ARREARS_ASG_GRE_ITD     IF ( net_amount >= total_dedn ) THEN      (       to_arrears = −1 *<BASE_NAME>_ARREARS_ASG_GRE_ITD       to_not_taken = 0       dedn_amt =total_dedn      )      ELSE      (       IF ( insuff_funds_type = ‘APD’) THEN       (         to_arrears = total_dedn − net_amount        to_arrears = to_arrears − <BASE_NAME>_ARREARS_ASG_GRE_ITD        IF ( net_amount >= dedn_amt ) THEN         (         to_not_taken = 0         )         ELSE         (         to_not_taken = to_arrears         )         dedn_amt =net_amount       )       ELSE       (         IF ( net_amount >=dedn_amt ) THEN         (          to_arrears = 0          to_not_taken= 0          dedn_amt = dedn_amt         )         ELSE         (         to_arrears = dedn_amt          to_not_taken = dedn_amt         dedn_amt = 0         )       )      )    )   ) /* ===== ArrearsSection End ===== */ /* ===== Stop Rule Section Begin ===== */  to_total_owed = dedn_amt   IF Total_Owed WAS NOT DEFAULTED THEN   (   total_accrued = dedn_amt + <BASE_NAME>_ACCRUED_ASG_GRE_ITD    IFtotal_accrued >= Total_Owed THEN    (      dedn_amt = Total_Owed −<BASE_NAME>_ACCRUED_ASG_GRE_ITD      /* The total has been reached - thereturn will stop the entry under        these conditions. Also, zero outAccrued balance. */      to_total_owed = −1 *<BASE_NAME>_ACCRUED_ASG_GRE_ITD      STOP_ENTRY = ‘Y’      mesg =GET_MESG(‘PAY’,‘PAY_MX_STOPPED_ENTRY’, ‘BASE_NAME’,‘<BASE_NAME>’)    )  ) /* ===== Stop Rule Section End ===== */  RETURN dedn_amt,     to_not_taken,      to_arrears,      to_total_owed,      STOP_ENTRY,     set_clear,      mesg /* End Formula Text */ FORMULA NAME_PERCENTAGE_OF_DEDUCTION_PRORATION DESCRIPTION Formula for Percentage ofDeduction Proration Template FORMULA/************************************************* TEXT ***********Description : Formula to calculate pro rated amounts. DISCLAIMER : Thisformula is strictly for example or prototype  purposes only. You shouldupdate the formula to meet your particular  requirements. This formulamay contain certain hard  coded values to simplify the use of formulasfor proration. A typical example  of proration would be when a newemployee starts work in the middle of a  monthly payroll period and yourpayroll department makes a pro-rata payment  to reflect the proportionof monthly pay to which the employee is entitled.  The prototype formulasupplied is only designed to work for payroll  calculations involvingproration and should not be used for any other purpose.  Any use of theformula is subject to the terms of the Oracle license agreement  for theHRMS programs and documentation.************************************************** ***********/ defaultfor prorate_start is ‘01-JAN-1900’ (date) default for prorate_end is‘01-JAN-1900’ (date) default for amount is 0.0 inputs are prorate_start(date), prorate_end (date), annual_amount (number) /**  Prorate_startand prorate_end dates are passed from the payroll engine. These  datesbasically represent the dates on which the changes occur in the deduction amount during the pay period. annual_amount is an input value created in the element to which this formula will be tied. Here the assumption is that the user enters the annual deduction amount in the input value. **/ l_amount = annual_amount message = ‘Proration StartDate ’ || TO_CHAR(prorate_start, ‘DD-MON-YYYY’) IF (prorate_start wasdefaulted) then ( /**  prorate_start date is defaulted when no proration occurs. Therefore we  should just return the annual deductionamount divided by 12. **/   l_amount = l_amount / 12   return l_amount,message ) else (    l_days = days_between(prorate_end , prorate_start) +1 /**  l_days stores the number of days between prorate start andprorate  end dates **/    l_days_in_fiscal_year = 365 /**   It isanother assumption that a year contains 365 days. Please change   thisassumption to take care of leap year. This formula will not work  properly in a leap year. **/    l_amount = (l_amount * l_days) /l_days_in_fiscal_year /**  In the above calculation, since l_amountcontains the annual deduction amount,  it is divided by 365 days of theyear to get the deduction amount per day.  This amount is thenmultiplied by the number of days in question to get  the properdeduction amount **/ return l_amount, message )

Formula Rules SHADOW Percentage Percentage Deduction PercentageDeduction ELEMENT Deduction TYPE FORMULA _PCT_DEDN _PCT_DEDN _PCT_DEDNELEMENT Percentage Percentage Deduction Percentage Deduction TYPEDeduction Special Feature Special Feature EXCLUSION {RULE:Total Reached{RULE:Earning Threshold RULE VALUE:N} VALUE:ERRA}, {RULE:EarningThreshold VALUE:NONE}, {RULE:Earning Threshold VALUE:PD} RESULT dedn_amtto_total_owed to_arrears NAME INPUT Pay Value Accrued Arrears ContrVALUE RESULT D I I RULE TYPE SHADOW Percentage Percentage PercentageDeduction ELEMENT Deduction Deduction TYPE FORMULA _PCT_DEDN _PCT_DEDN_PCT_DEDN ELEMENT Percentage Percentage Percentage Deduction TYPEDeduction Deduction Special Feature EXCLUSION {RULE:Earning ThresholdRULE VALUE:ERRA}, {RULE:Earning Threshold VALUE:NONE}, {RULE:EarningThreshold VALUE:PD} RESULT to_not_taken STOP_ENTRY set_clear NAME INPUTVALUE Not Taken Clear Arrears RESULT I S U RULE TYPE

Balance Types EXCLUSION N N N N N RULE ASSIGNMENT Percentage PercentagePercentage Percentage Percentage REMUNERATION Deduction DeductionDeduction Deduction Deduction FLAG Eligible Accrued Arrears Not TakenComp BALANCE NAME M M M M M BALANCE UOM {RULE: {RULE: {RULE: {RULE:{RULE: Output Output Output Output Output Currency Currency CurrencyCurrency Currency DEFAULT:< DEFAULT:< DEFAULT:< DEFAULT:< DEFAULT:<Currency of Currency of Currency of Currency of Currency of the giventhe given the given the given the given country>} country>} country>}country>} country>} CURRENCY Primary Eligible Accrued Arrears Not TakenCODE balance for Comp. balance for balance for balance for Percentagebalance for Percentage Percentage Percentage Deductions. PercentageDeduction. Deduction. Deduction. Deduction. COMMENTS Eligible AccruedArrears Not Taken Comp REPORTING Deductions Wages Wages Wages Wages NAMECATEGORY Percentage Percentage Percentage Percentage NAME DeductionDeduction Deduction Deduction BASE BALANCE Pay Value TYPE INPUT VALUE NN N N N

Input Values ELEMENT Percentage Percentage Percentage PercentagePercentage TYPE Deduction Deduction Deduction Deduction DeductionSpecial Features EXCLUSION {RULE:Earning {RULE:Total RULE ThresholdReached VALUE:ERRA}, VALUE:N} {RULE:Earning Threshold VALUE:NONE},{RULE:Earning Threshold VALUE:PD} DISPLAY 1 2 3 4 1 SEQUENCE GENERATE YY Y Y Y DB ITEMS FLAG HOT N N N N N DEFAULT FLAG MANDATORY X N N N XFLAG NAME Pay Value Percentage Clear Arrears Total Owed Pay Value UOM MM C M M LOOKUP YES_NO TYPE DEFAULT N VALUE DEFAULT VALUE COLUMN ELEMENTPercentage Percentage Percentage Deduction Special TYPE DeductionSpecial Deduction Features Features Special Features EXCLUSION{RULE:Total {RULE:Earning Threshold RULE Reached VALUE:ERRA},{RULE:Earning VALUE:N} Threshold VALUE:NONE}, {RULE:Earning ThresholdVALUE:PD} EXCLUSION N N RULE VALUE DISPLAY 2 3 4 SEQUENCE GENERATE Y Y YDB ITEMS FLAG HOT N N N DEFAULT FLAG MANDATORY X X X FLAG NAME AccruedNot Taken Arrears Contr UOM M M M LOOKUP TYPE DEFAULT VALUE DEFAULTVALUE COLUMN

Balance Feeds INPUT Pay Value Arrears Contr Accrued Not Taken VALUEBALANCE Percentage Percentage Percentage Percentage TYPE DeductionDeduction Deduction Deduction Arrears Accrued Not Taken EXCLUSION RULESCALE 1 1 1 1 BALANCE Pay Value Arrears Contr Accrued Not Taken NAME

Defined Balances EXCLUSION BALANCE TYPE DIMENSION RULE PercentageDeduction _CORE_PRS_RUN Percentage Deduction _CORE_PRS_PY_PTD PercentageDeduction _CORE_PRS_MTD Percentage Deduction _CORE_PRS_QTD PercentageDeduction _CORE_PRS_YTD Percentage Deduction _CORE_PRS_TU_RUN PercentageDeduction _CORE_PRS_TU_PY_PTD Percentage Deduction _CORE_PRS_TU_YTDPercentage Deduction _CORE_ASG_RUN Percentage Deduction _CORE_ASG_PY_PTDPercentage Deduction _CORE_ASG_MTD Percentage Deduction _CORE_ASG_QTDPercentage Deduction _CORE_ASG_YTD Percentage Deduction _CORE_ASG_TU_RUNPercentage Deduction _CORE_ASG_TU_PY_PTD Percentage Deduction_CORE_ASG_TU_YTD Percentage Deduction _CORE_ASG_LTD Percentage Deduction_CORE_ASG_TU_LTD Percentage Deduction _CORE_PRS_LTD Percentage Deduction_CORE_PRS_TU_LTD Percentage Deduction _CORE_PRS_RUN Accrued PercentageDeduction _CORE_PRS_PY_PTD Accrued Percentage Deduction _CORE_PRS_MTDAccrued Percentage Deduction _CORE_PRS_QTD Accrued Percentage Deduction_CORE_PRS_YTD Accrued Percentage Deduction _CORE_PRS_TU_RUN AccruedPercentage Deduction _CORE_PRS_TU_PY_PTD Accrued Percentage Deduction_CORE_PRS_TU_YTD Accrued Percentage Deduction _CORE_ASG_RUN AccruedPercentage Deduction _CORE_ASG_PY_PTD Accrued Percentage Deduction_CORE_ASG_MTD Accrued Percentage Deduction _CORE_ASG_QTD AccruedPercentage Deduction _CORE_ASG_YTD Accrued Percentage Deduction_CORE_ASG_TU_RUN Accrued Percentage Deduction _CORE_ASG_TU_PY_PTDAccrued Percentage Deduction _CORE_ASG_TU_YTD Accrued PercentageDeduction _CORE_ASG_LTD Accrued Percentage Deduction _CORE_ASG_TU_LTDAccrued Percentage Deduction _CORE_ASG_EE_LTD Accrued PercentageDeduction _CORE_PRS_LTD Accrued Percentage Deduction _CORE_PRS_TU_LTDAccrued Percentage Deduction _CORE_PRS_RUN Eligible Comp PercentageDeduction _CORE_PRS_PY_PTD Eligible Comp Percentage Deduction_CORE_PRS_MTD Eligible Comp Percentage Deduction _CORE_PRS_QTD EligibleComp Percentage Deduction _CORE_PRS_YTD Eligible Comp PercentageDeduction _CORE_PRS_TU_RUN Eligible Comp Percentage Deduction_CORE_PRS_TU_PY_PTD Eligible Comp Percentage Deduction _CORE_PRS_TU_YTDEligible Comp Percentage Deduction _CORE_ASG_RUN Eligible CompPercentage Deduction _CORE_ASG_PY_PTD Eligible Comp Percentage Deduction_CORE_ASG_MTD Eligible Comp Percentage Deduction _CORE_ASG_QTD EligibleComp Percentage Deduction _CORE_ASG_YTD Eligible Comp PercentageDeduction _CORE_ASG_TU_RUN Eligible Comp Percentage Deduction_CORE_ASG_TU_PY_PTD Eligible Comp Percentage Deduction _CORE_ASG_TU_YTDEligible Comp Percentage Deduction _CORE_ASG_LTD Eligible CompPercentage Deduction _CORE_ASG_TU_LTD Eligible Comp Percentage Deduction_CORE_PRS_LTD Eligible Comp Percentage Deduction _CORE_PRS_TU_LTDEligible Comp Percentage Deduction _CORE_PRS_RUN Arrears PercentageDeduction _CORE_PRS_PY_PTD Arrears Percentage Deduction _CORE_PRS_MTDArrears Percentage Deduction _CORE_PRS_QTD Arrears Percentage Deduction_CORE_PRS_YTD Arrears Percentage Deduction _CORE_PRS_TU_RUN ArrearsPercentage Deduction _CORE_PRS_TU_PY_PTD Arrears Percentage Deduction_CORE_PRS_TU_YTD Arrears Percentage Deduction _CORE_ASG_RUN ArrearsPercentage Deduction _CORE_ASG_PY_PTD Arrears Percentage Deduction_CORE_ASG_MTD Arrears Percentage Deduction _CORE_ASG_QTD ArrearsPercentage Deduction _CORE_ASG_YTD Arrears Percentage Deduction_CORE_ASG_TU_RUN Arrears Percentage Deduction _CORE_ASG_TU_PY_PTDArrears Percentage Deduction _CORE_ASG_TU_YTD Arrears PercentageDeduction _CORE_ASG_LTD Arrears Percentage Deduction _CORE_ASG_TU_LTDArrears Percentage Deduction _CORE_ASG_EE_LTD Arrears PercentageDeduction _CORE_PRS_LTD Arrears Percentage Deduction _CORE_PRS_TU_LTDArrears Percentage Deduction _CORE_PRS_RUN Not Taken PercentageDeduction _CORE_PRS_PY_PTD Not Taken Percentage Deduction _CORE_PRS_MTDNot Taken Percentage Deduction _CORE_PRS_QTD Not Taken PercentageDeduction _CORE_PRS_YTD Not Taken Percentage Deduction _CORE_PRS_TU_RUNNot Taken Percentage Deduction _CORE_PRS_TU_PY_PTD Not Taken PercentageDeduction _CORE_PRS_TU_YTD Not Taken Percentage Deduction _CORE_ASG_RUNNot Taken Percentage Deduction _CORE_ASG_PY_PTD Not Taken PercentageDeduction _CORE_ASG_MTD Not Taken Percentage Deduction _CORE_ASG_QTD NotTaken Percentage Deduction _CORE_ASG_YTD Not Taken Percentage Deduction_CORE_ASG_TU_RUN Not Taken Percentage Deduction _CORE_ASG_TU_PY_PTD NotTaken Percentage Deduction _CORE_ASG_TU_YTD Not Taken PercentageDeduction _CORE_ASG_LTD Not Taken Percentage Deduction _CORE_ASG_TU_LTDNot Taken Percentage Deduction _CORE_PRS_LTD Not Taken PercentageDeduction _CORE_PRS_TU_LTD Not Taken

Retro Component Usages CREATOR TYPE ET CREATOR Percentage DeductionRETRO Replacement COMPONENT DEFAULT Y COMPONENT REPROCESS R TYPE

Although the present invention has been described in connection withseveral embodiments, the invention is not intended to be limited to thespecific forms set forth herein. On the contrary, it is intended tocover such alternatives, modifications, and equivalents as can bereasonably included within the scope of the invention as defined by theappended claims.

What is claimed is:
 1. A method comprising: selecting a predefinedpayroll element template from a plurality of predefined payroll elementtemplates based on user input received via a graphical user interface;accessing the predefined payroll element template to identify a rulecontained therein; creating a question based on the identified rule;presenting the question to a user via the graphical user interface;receiving via the graphical user interface a template modificationvalue, wherein the template modification value is input by the user viathe graphical user interface in response to the question; automaticallycustomizing the predefined payroll element template, based upon thetemplate modification value, to create a customized payroll elementtemplate; and storing the customized payroll element template, whereinthe accessing the predefined payroll element template, the receiving thetemplate modification value, the customizing the predefined payrollelement, and the storing the customized payroll element template areperformed by a computing device implementing a payroll engine.
 2. Themethod of claim 1, further comprising creating one or more payrollobjects, based upon the customized payroll element template.
 3. Themethod of claim 1, further comprising providing at least a portion of apayroll questionnaire for display to the user in a payroll wizardwindow, wherein the same payroll wizard window displays a first set ofquestions used to customize an earnings template and a second set ofquestions used to customize a deduction template.
 4. The method of claim1: wherein the template modification value indicates that a first recordof a plurality of records included in the predefined payroll elementtemplate should be excluded from the customized payroll elementtemplate; wherein the creating the customized payroll element templatecomprises excluding the first record from the customized payroll elementtemplate and excluding one or more additional records from thecustomized payroll element template, wherein the one or more additionalrecords are children of the first record within a hierarchy, and whereinthe predefined payroll element template comprises the first record andthe one or more additional records.
 5. The method of claim 1, whereinthe template modification value indicates that a first record includedin the predefined payroll element template should have a specificdefault value in the customized payroll element template, wherein thetemplate modification value comprises the specific default value.
 6. Themethod of claim 1, further comprising receiving a second templatemodification value, wherein the second template modification valueindicates that a second question should not be displayed to the userduring a payroll configuration session to generate either the customizedpayroll element template or an object created from the customizedpayroll element template.
 7. The method of claim 1, further comprisingreceiving a second template modification value, wherein the second rulemodification is received in response to user input selecting thepredefined payroll template, and wherein the customizing the predefinedpayroll element template is based upon the second template modificationvalue.
 8. A non-transitory computer readable medium (CRM) comprisinginstructions executable by a computing device, wherein the computingdevice implements a method in response to executing the instructions,the method comprising: selecting a predefined payroll element templatefrom a plurality of predefined payroll element templates based on userinput received via a graphical user interface; accessing the predefinedpayroll element template to identify a rule contained therein; creatinga question based on the identified rule; presenting the question to auser via the graphical user interface; receiving via the graphical userinterface a template modification value, wherein the templatemodification value is input by the user via the graphical user interfacein response to the question; automatically customizing the predefinedpayroll element template, based upon the template modification value, tocreate a customized payroll element template; and storing the customizedpayroll element template, wherein the accessing the predefined payrollelement template, the receiving the template modification value, thecustomizing the predefined payroll element, and the storing thecustomized payroll element template are performed by a computing deviceimplementing a payroll engine.
 9. The non-transitory CRM of claim 8wherein the method further comprises creating one or more payrollobjects, based upon the customized payroll element template.
 10. Thenon-transitory CRM of claim 8 wherein the method further comprisesproviding at least a portion of a payroll questionnaire for display tothe user in a payroll wizard window, wherein the same payroll wizardwindow displays a first set of questions used to customize an earningstemplate and a second set of questions used to customize a deductiontemplate.
 11. The non-transitory CRM of claim 8: wherein the templatemodification value indicates that a first record of a plurality ofrecords included in the predefined payroll element template should beexcluded from the customized payroll element template; wherein thecreating the customized payroll element template comprises excluding thefirst record from the customized payroll element template and excludingone or more additional records from the customized payroll elementtemplate, wherein the one or more additional records are children of thefirst record within a hierarchy, and wherein the predefined payrollelement template comprises the first record and the one or moreadditional records.
 12. The non-transitory CRM of claim 8 wherein thetemplate modification value indicates that a first record included inthe predefined payroll element template should have a specific defaultvalue in the customized payroll element template, wherein the templatemodification value comprises the specific default value.
 13. Thenon-transitory CRM of claim 8 wherein the method further comprisesreceiving a second template modification value, wherein the secondtemplate modification value indicates that a second question should notbe displayed to the user during a payroll configuration session togenerate either the customized payroll element template or an objectcreated from the customized payroll element template.
 14. Thenon-transitory CRM of claim 8 wherein the method further comprisesreceiving a second template modification value, wherein the second rulemodification is received in response to user input selecting thepredefined payroll template, and wherein the customizing the predefinedpayroll element template is based upon the second template modificationvalue.
 15. A computing device comprising: non-transitory computerreadable medium (CRM) comprising instructions; a processor for executingthe instructions, wherein the processor implements a method in responseto executing the instructions, the method comprising: selecting apredefined payroll element template from a plurality of predefinedpayroll element templates based on user input received via a graphicaluser interface; accessing the predefined payroll element template toidentify a rule contained therein; creating a question based on theidentified rule; presenting the question to a user via the graphicaluser interface; receiving via the graphical user interface a templatemodification value, wherein the template modification value is input bythe user via the graphical user interface in response to the question;automatically customizing the predefined payroll element template, basedupon the template modification value, to create a customized payrollelement template; and storing the customized payroll element template,wherein the accessing the predefined payroll element template, thereceiving the template modification value, the customizing thepredefined payroll element, and the storing the customized payrollelement template are performed by a computing device implementing apayroll engine.
 16. The computing device of claim 15 wherein the methodfurther comprises creating one or more payroll objects, based upon thecustomized payroll element template.
 17. The computing device of claim15 wherein the method further comprises providing at least a portion ofa payroll questionnaire for display to the user in a payroll wizardwindow, wherein the same payroll wizard window displays a first set ofquestions used to customize an earnings template and a second set ofquestions used to customize a deduction template.
 18. The computingdevice of claim 15: wherein the template modification value indicatesthat a first record of a plurality of records included in the predefinedpayroll element template should be excluded from the customized payrollelement template; wherein the creating the customized payroll elementtemplate comprises excluding the first record from the customizedpayroll element template and excluding one or more additional recordsfrom the customized payroll element template, wherein the one or moreadditional records are children of the first record within a hierarchy,and wherein the predefined payroll element template comprises the firstrecord and the one or more additional records.
 19. The computing deviceof claim 15 wherein the template modification value indicates that afirst record included in the predefined payroll element template shouldhave a specific default value in the customized payroll elementtemplate, wherein the template modification value comprises the specificdefault value.
 20. The method of claim 1, further comprising: creatingone or more payroll objects, based upon the customized payroll elementtemplate; providing, by the computing device, at least a portion of apayroll questionnaire for display to the user in a payroll wizard windowdisplayed by the computing device, wherein the same payroll wizardwindow displays a first set of questions used to customize an earningstemplate and a second set of questions used to customize a deductiontemplate; receiving a second template modification value on thecomputing device, the second template modification value indicating thata second question should not be displayed to the user during a payrollconfiguration session to generate either the customized payroll elementtemplate or an object created from the customized payroll elementtemplate; and receiving a third template modification value on thecomputing device in response to the user input selecting the predefinedpayroll template, wherein, the customizing the predefined payrollelement template is based on the template modification value, the secondtemplate modification value, and the third template modification value,further wherein, the third template modification value indicates that afirst record included in the predefined payroll element template shouldhave a specific default value in the customized payroll elementtemplate, wherein the third template modification value comprises thespecific default value, and further wherein, the template modificationvalue indicates that a first record of a plurality of records includedin the predefined payroll element template should be excluded from thecustomized payroll element template, such that the customizing thepredefined payroll element template comprises excluding, by thecomputing device, the first record from the customized payroll elementtemplate, and excluding, by the computing device, one or more additionalrecords from the customized payroll element template, the one or moreadditional records being children of the first record within ahierarchy, and the predefined payroll element template comprising thefirst record and the one or more additional records.